我希望能夠鏈接多對jQuery UI日期選擇器實例,以便每對中的第二個不能選擇比第一個更早的日期。我正在關注this example開始。多個鏈接的jQuery UI日期選擇器
例子:
<ul>
<li>
<input class="counter" name="counter" type="hidden" value="43"/>
<label>Start: </label><input name="start_43" id="start_43" size="10" />
<label>End: </label><input name="end_43" id="end_43" size="10" />
</li>
<li>
<input class="counter" name="counter" type="hidden" value="44"/>
<label>Start: </label><input name="start_44" id="start_44" size="10" />
<label>End: </label><input name="end_44" id="end_44" size="10" />
</li>
</ul>
我被發現了「櫃檯」號上循環的實例:
$(document).ready(function() {
var starts = $("input[name='counter']");
var dates = new Array();
starts.each(function(){
var x = this.value;
// http://jqueryui.com/demos/datepicker/#date-range
dates[x] = $("#start_"+x+", #end_"+x).datepicker({
onSelect: function(selectedDate) {
var option = this.id == "#start_"+x ? "minDate" : "maxDate",
instance = $(this).data("datepicker");
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings);
dates[x].not(this).datepicker("option", option, date);
}
});
});
});
這工作,使每個輸入一個日期選擇器,但它並不妨礙第二次從第一次選擇日期之前的日期。事實上它要求第二個實例選擇第一個之前的日期。選中時,第二個實例將填充兩個輸入!
任何人都可以看到我要去哪裏錯了嗎?
@oleonard要清楚,你所要做的就是改變下面一行,刪除單詞start前面的散列:var option = this.id ==「start _」+ x? 「minDate」:「maxDate」 – lsuarez 2011-02-24 18:30:02
啊,你完全正確!我沒有意識到「#」已經悄悄進入,現在它工作正常。謝謝你的額外眼睛! – oleonard 2011-02-25 17:33:24
@oleonard我確切地知道你的意思。當我建議他真的應該讓我看看第二個腦袋是否有助於揭示問題時,我的團隊領導正在盯着一個半小時。 「我沒有看到這個變量的範圍,你忘了輸入'點'嗎?」問題解決了! – lsuarez 2011-02-25 20:37:27