我正在使用 jQuery UI 的 datepicker 来显示带有选择列表的日历。输入字段和选择列表是同步的,因此当您更改日期选择器或选择列表的值时,其他字段的值将相应更改。
日期选择器与限制日期范围功能一起使用 (http://jqueryui.com/datepicker/#min-max)。这完美地完成了它的工作 - 结束日期不能早于开始日期,您无法相应地选择前几天。当然,您也不能选择 START 日期在 END 日期之后。
问题出在选择列表上。即使“限制日期范围”发挥了作用,您仍然可以使用选择列表选择任何日期。因此,当您使用选择列表时,我正在寻找此解决方案(如果您只使用日历图标,它应该不会影响任何事情):
如果您首先选择开始日期,则结束日期应自动更改为所选日期后的一天。
如果您选择了两个日期并决定将 START 日期更改为 END 日期之后的日期,则 END 日期应再次更改为一天后。
如果您选择了两个日期并决定将 END 日期更改为 START 日期之前的日期,则 START 日期应更改为 END 日期的前一天。
我尝试使用这段代码来影响#1 和#2:
$('#start').change(function() {
var date2 = $('#start').datepicker('getDate', '+1d');
date2.setDate(date2.getDate()+1);
$('#end').datepicker('setDate', date2);
});
但是,它似乎不会影响任何事情。这是 jsFiddle 上的整个示例: