我的应用程序有两个datepicker对象,我想将第二个对象的最小日期设置为为第一个datepicker对象选择的日期之后的5天。以下是我尝试使用的代码片段:
$( "#datePickerObj2" ).datepicker("option", "minDate", function() { var date2 = new Date(); date2 = $('#datePickerObj1').datepicker('getDate'); return date2.getDate()+5;});
我使用this answer作为帮助来编写我的一些代码,但收到错误Uncaught TypeError: date.getTime is not a function
。根据一些研究,当日期变量未正确设置为日期对象时会弹出此错误,但我明确地在我的代码中处理了这个错误,并且我没有一个名为“date”的对象。有人能看到我的错误吗?
编辑:此外,如果有人指出我没有使用链接中的正确答案,我也尝试过:
$( "#datePickerObj2" ).datepicker("option", "minDate", function() { var date2 = $('#datePickerObj1').datepicker('getDate'); var nextDayDate = new Date(); nextDayDate.setDate(date2.getDate() + 5); return nextDayDate;});
有同样的问题。
答案 0 :(得分:1)
datepicker对象中的minDate
选项应该是Date对象,而不是函数(就像你发送的那样)。
您可以使用以下代码:
var date2 = $('#datePickerObj1').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 5);
$( "#datePickerObj2" ).datepicker("option", "minDate", nextDayDate);
如果你真的希望这是一个单行,你可以编写你的函数并在同一行中调用它:
$( "#datePickerObj2" ).datepicker("option", "minDate", (function() { var date2 = $('#datePickerObj1').datepicker('getDate'); var nextDayDate = new Date(); nextDayDate.setDate(date2.getDate() + 5); return nextDayDate;})());
我不喜欢这种方法,但你可以使用它:)
答案 1 :(得分:0)
我找到了解决这个问题的方法,将发布我所做的事情,感谢Dekel指导我走这条道路!
var date2 = $('#datePickerObj1').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 5);
$( '#datePickerObj2').datepicker("setDate", nextDayDate);
$( '#datePickerObj2').datepicker("option", "minDate", nextDayDate);
由于某种原因,由于我的第二个datepicker对象尚未被选中,因此在某处传递null
值,导致类型错误。所以我先设置第二个datepicker的日期,然后将其设置为该日期的最小日期。