我有2个日期选择器绑定到2个文本框(Chkin
和Chkout
)。当我在Chkin
中选择日期时,我应该在Chkin
中显示Chkout
+ 1个日期。但在某些情况下,Chkout
日期未正确填写。谁能告诉我哪里出错了?
我的代码是 -
$("#Chkin").datepicker({
dateFormat: $("#Dateformat").val(),
minDate: '+0',
onClose: function (dateText, inst) {
if ($("#Dateformat").val() == "dd/mm/yy") {
var parts = dateText.split("/");
var cin = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));
}
else {
var cin = new Date(dateText);
}
var cout = new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+1);
var maxOut= new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+7);
$("#Chkout").datepicker('option', 'minDate', cout);
$("#Chkout").datepicker('option', 'maxDate', maxOut);
showDays();
}
});
var cin = new Date($("#Chkin").val());
var cout = new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+1);
var maxOut= new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+7);
$("#Chkout").datepicker({
dateFormat: $("#ctl00_ContentPlaceHolder1_hdnDateformat").val(),
minDate: cout,
maxDate: maxOut,
onSelect: showDays });
PS:Chkin
和Chkout
值最初与某些日期绑定。
答案 0 :(得分:0)
这是因为当Chkin
关闭时,您不会将Chkout
设置为Chkin
+ 1。
在$("#Chkin").datepicker({})
中,在致电函数$("#Chkout").datepicker( "setDate", cout );
之前添加showDays()
。
说明:
使用您当前的代码,如果Chkin
中的选定值少于7天或等于Chkout
,Chkout
将自动设置为Chkin
+ 1。 ,Chkout
不会被更改。
示例:
更改Chkin
之前:
Chkin = 1 August 2013
Chkout = 5 August 2013
Chkout's minDate and maxDate = 2 August 2013 and 8 August 2013
案例1 - Chkin
已更改为2013年7月22日:
Chkout = 23 July 2013
Chkout's minDate and maxDate = 23 July 2013 and 29 July 2013
案例1解释: Chkout
已更改,因为旧Chkout的值不在新Chkout的minDate和maxDate 的范围内。
案例2 - Chkin
已更改为2013年8月3日:
Chkout = 5 August 2013
Chkout's minDate and maxDate = 4 August 2013 and 10 August 2013
案例2解释: Chkout
仍然相同,因为旧Chkout的值在新Chkout的minDate和maxDate 的范围内。
希望这有帮助。