2016-10-18 39 views
2

我對jQuery的日期選擇器jQuery的日期選擇器的maxDate問題

 $('#startDate').datepicker({ 
      format: "dd/mm/yyyy", 
      maxDate: '0' 
     }) 
     .on('changeDate', function (ev) { 
      $('#startDate').datepicker('hide'); 
     }); 

它啓動在引導模式下的代碼。它的工作方式與maxDate相同 - 我想限制用戶在將來輸入任何日期 - 是否有我缺少的東西?我也試過maxDate : new Date(),這也沒有工作。我做了一個硬重載並檢查了開發工具,我可以看到呈現的標記中的java腳本和預期的一樣。

以完整的html標記進行更新。

<input id="startDate" placeholder="Select Date" data-provide="datepicker" class="datepicker ng-valid ng-touched ng-dirty ng-valid-parse" readonly="readonly" style="cursor:auto; background-color:white" ng-model="item.startDate" ng-change="startDateChanged(item.startDate)"> 

使用jQuery 1.10.2和角度1.4.1

+0

你有什麼是正確的,應該給期望的行爲。你有鏈接到它不工作的地方嗎? – MasNotsram

+0

maxDate = $(「.selector」).datepicker(「getDate」); – Mahi

+0

網站注意到,這不會阻止用戶將未來日期輸入該字段,但會阻止他們從日期選擇器本身中挑選未來日期。 – MasNotsram

回答

1

希望這會爲你工作

$("#datepicker").datepicker({ 
    format: "dd/mm/yyyy", 
    maxDate: 0 
}); 
+0

既不是「format」也不是「endDate」是jQuery datepicker的屬性。 (請參閱http://api.jqueryui.com/datepicker/)這個答案不會幫助。 – ADyson

+0

不好意思啊,我還以爲你是使用jQuery引導日期選擇器 這必將爲你工作: - $( 「#datepicker」).datepicker({ \t格式: 「DD/MM/YYYY」, 的maxDate: 0 }); 在這裏你可以檢查[測試](https://jsfiddle.net/g5vypyaj/) –

+0

@ADyson我會更新上面的代碼也 –

0

你想從輸入日期到文本框,然後阻止用戶在您的文本框中添加readonly='true'

HTML

<input id="Datepicker" type="text" readonly='true' /> 

演示:Click here

+0

這是反用戶。特別是對於在鼠標上使用鍵盤的人或具有可訪問性問題的人而言,這並不好。例如,我知道很多打字員通過表格選擇並鍵入值,而不是使用鼠標來選擇每個字段。這樣的人會發現這令人難以置信的煩人。另外,你的演示還沒有糾正錯誤與不存在'格式'屬性,或不正確的格式字符串 – ADyson

+0

@ADyson好想我同意你!但他的需要防止用戶輸入日期到文本框,所以根據他的問題,我發佈了這個答案。 – RajeeshMenoth

+0

在原始問題中,OP從未要求阻止用戶在該框中輸入內容。困惑在於爲什麼日期選擇器不工作(原來是因爲他們使用了不同的插件來實現他們認爲的那個插件)。 OP然後建議防止在註釋框中輸入作爲解決方法,但是我在那裏做了同樣的評論,這對可用性不利 - 應該使用驗證規則來確保輸入可接受的值。 – ADyson

0

課學到的是要搜索什麼文庫的其他開發者添加到項目和不承擔其已在過去使用的一個 - 我在我開發的幾乎所有其他地方都使用過jQuery Datepicker。這個特殊的開發包括引導js datepicker。它的選擇是結束日期,也沒有用於自動關閉的選項,讓我甚至可以擺脫「關於」事件處理程序,將其做隱藏

https://bootstrap-datepicker.readthedocs.io/en/latest/options.html