2

我正在使用jqueryUI datepicker作为日期范围,如在此demo中。这是未能验证作为未来日期以从以下情况下发件人:日期范围的jQueryUI日期选择器无法验证何时使用键盘清除日期文本框

  1. 在FROM日期选择11/19/2011。现在去2011年11月份的TO datepicker,你不能选择“11/19/2011”之前的日期。这是好的和预期的行为

  2. 现在使用鼠标将您的光标放在FROM日期选择器文本框中。选择所选日期即2011年11月19日,并删除即使文本框为空。在这个时间点,2个文本框是空的。

  3. 现在转到'到'datepicker检查11月11日2011年11月19日之前的所有日期仍然被禁用,这不是必需的行为。

为了解决这个我做的文本框readonly,但我想这个问题更好的解决方案,使用户可以输入键盘与日期,以及用鼠标点击。

回答

1

这是因为设置minDatemaxDate逻辑位于select事件监听器(它不被解雇过,当你完全从一个datepicker字段删除日期)。你可以绑定到change事件,而不是:

var dates = $("#from, #to").datepicker({ 
    defaultDate: "+1w", 
    changeMonth: true, 
    numberOfMonths: 3, 
}).bind("change", function() { 
    var option = this.id == "from" ? "minDate" : "maxDate", 
     selectedDate = this.value, 
     instance = $(this).data("datepicker"), 
     date = $.datepicker.parseDate(instance.settings.dateFormat || 
      $.datepicker._defaults.dateFormat, selectedDate, instance.settings); 
     dates.not(this).datepicker("option", option, date);   
}); 

例子:http://jsfiddle.net/TMnRX/

+0

非常感谢安德鲁它的工作原理。除了onSelect事件,我还添加了“更改”事件。继续分享您的知识。 –

+0

@KyasaMadhavi:感谢客气的话。乐意效劳! –

相关问题