我正在使用jqueryUI datepicker作为日期范围,如此demo。在以下情况中,这无法验证To作为From的未来日期:
在FROM日期选择11/19/2011。现在转到2011年11月的TO datepicker,你不能选择“11/19/2011”之前的日期。这是很好的预期行为
现在使用鼠标将光标放在FROM日期选择器文本框中。选择选择的日期,即11/19/2011并删除,即将文本框设为空。此时,2个文本框为空。
现在转到'TO'datepicker检查2011年11月.11 / 11/2011之前的所有日期仍然被禁用,这不是必需的行为。
为了解决这个问题,我制作了文本框readonly
但是我想要一个更好的解决方案来解决这个问题,这样用户就可以用键盘输入日期,也可以用鼠标选择。
答案 0 :(得分:1)
这是因为设置minDate
和maxDate
的逻辑位于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);
});