ole*_*ard 5 jquery jquery-ui datepicker
我希望能够链接多对jQuery UI datepicker实例,以便每对中的第二个不能选择比第一个更早的日期.我正在按照这个例子开始.
例:
<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 );
            }
        });
    });
});
这适用于在每个输入上启用日期选择器,但它不会阻止第二个实例在第一个实例之前选择日期.实际上,它要求第二个实例在第一个实例之前选择一个日期.选中后,第二个实例将填充两个输入!
谁能看到我哪里出错了?
我不是 100% 关于 parseDate 的用途,或者你为什么从数据存储中检索实例。但是,我相信您的主要问题是 this.id 测试。在实际的 DOM 元素中,ID 永远不会以 # 开头。
onSelect: function(selectedDate) {
    var option = this.id.indexOf("start_") != -1 ? "minDate" : "maxDate";
    dates[i].not(this).datepicker("option", option, selectedDate);
}
上面应该这样做,或者你可以从你的代码中取出散列(我刚刚做了并且似乎工作正常)。:]
| 归档时间: | 
 | 
| 查看次数: | 3947 次 | 
| 最近记录: |