【发布时间】:2018-05-31 09:27:07
【问题描述】:
请看下面的javascript代码:
// Default calendar namespaces
var dateFormat = "<span class='day'>d</span> <span class='month'>M</span> <span class='year'>yy</span>",
dateArrival = '#dateArrival input',
dateDeparture = '#dateDeparture input',
dateArrivalVal = '#dateArrival .date-value',
dateDepartureVal = '#dateDeparture .date-value';
// Show arrival calendar
$(dateArrival).datepicker({
minDate: 'D',
dateFormat: dateFormat,
// get value on selected date for departure
onSelect: function (txt, inst) {
$(dateDepartureVal).html(txt);
$(dateArrivalVal).html($(dateArrival).val());
},
onClose: function (selectedDate) {
$(dateDeparture).datepicker("option", "minDate", selectedDate);
}
});
// Show departure calendar
$(dateDeparture).datepicker({
minDate: 'D+1',
dateFormat: dateFormat,
// get value on selected date for return
onSelect: function (txt, inst) {
$(dateDepartureVal).html(txt);
$(dateDepartureVal).html($(dateDeparture).val());
}
});
// set current date
$('.datepicker').datepicker('setDate', 'today');
// get current value from departure
$(dateArrivalVal).html($(dateArrival).val());
// get current value from return
$(dateDepartureVal).html($(dateDeparture).val());
如您所见,它是一个预订小部件,将当天显示为入住,第二天显示为退房。但是,当客户选择另一天入住时,退房设置为同一天。我想要做的是,如果选择 dateArrival 为 6 月 7 日,dateDeparture 会自动显示 6 月 8 日(即 dateArrival + 1 天),而不是显示相同的日期(6 月 7 日)。怎么可能做到这一点?
非常感谢!
【问题讨论】:
-
您确定要这样做吗?人们有时会不合理地填写表格并在设置到达日期之前设置出发日期,并且更改他们可能输入的日期并不一定是个好主意。如果现有日期早于到达日期,您应该只自动更改日期
-
我完全理解你的意思,@vogomatix。有没有办法只在先设置到达日期时才更改出发日期?
-
@RobG:
#dateArrival input选择#dateArrival内的所有输入,例如#dateArrival可能是一个div包含多个input元素。
标签: javascript date calendar