[英]Setting minimum date to date picked in previous datepicker
我有兩個日期選擇器。 一startdate
和enddate
。
我設置代碼的方式是,直到第一個日期選擇器被更改后,第二個日期選擇器才會啟動。 enddate
datepicker用startdate
上的當前日期初始化。 唯一的問題是,如果你改變了時間上的第一個日期選擇器不會刷新mindate
的enddate
。
$(function(){
$( "#startdate" ).datepicker({ minDate: currentTime });
//When the startdate changes change the mindate for the enddate picker
$( "#startdate" ).change(function (){
startTime = ($("#startdate").val());
$("#enddate").datepicker({ minDate: startTime });
});
//$( "#enddate" ).datepicker({ minDate: currentTime });
});
您將需要使用文檔( http://jqueryui.com/demos/datepicker/#method-option )中所述的option
方法來更新已初始化小部件的minDate
選項:
$( "#startdate, #enddate" ).datepicker({ minDate: currentTime });
$('#startdate').change(function () {
var startTime = ($("#startdate").val());
$("#enddate").datepicker('option', 'minDate', startTime);
});
注意,我將var
語句放在startTime
變量的前面,因此它將在事件處理程序的本地范圍中聲明。 同樣,兩個Datepickers都會進行初始化,然后每次更改#startdate
元素時, #startdate
#enddate
小部件都會獲得一個更新的minDate
選項。
這是一個演示: http : //jsfiddle.net/VP25m/
編輯:嘗試在datepicker上使用refresh()函數:
$( "#startdate" ).change(function (){
startTime = ($("#startdate").val());
$("#enddate").datepicker({ minDate: startTime });
$("#enddate").datepicker('refresh');
});
下面的舊答案:
您可能需要將結束日期datepicker設置為一個變量,以便可以在開始日期更改時銷毀並重新初始化它。
$( "#startdate" ).change(function (){
startTime = ($("#startdate").val());
if($("#enddate").datepicker("enabled")) {
endDatePicker.datepicker( "destroy" );
}
var endDatePicker = $("#enddate").datepicker({ minDate: startTime });
});
使用datepicker
的onSelect
事件代替文本框的change
事件。 在這種情況下,您將selected
日期作為第一個參數,可以將其設置為結束日期數據selected
minDate
。
$( "#startdate" ).datepicker({
minDate: currentTime,
onSelect: function(date){
//if the datepicker is not initialized
$("#enddate").datepicker({ minDate: date });
//if the datepicker is already initialized
$("#enddate").datepicker("option", "minDate", date);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.