我的datepicker文件中有很多事情要做,以完成一些任务。 1.)我需要能够阻止选择日期或周末(代码不包含在下面,因为它有效) 2.)我需要在每个字段上设置最小和最大日期,以确保最终用户不能选择比开始日期少3天的任何内容(见下文)
我的问题是,我的网站允许访问者返回他们选择日期的页面,并在必要时更改它们以延长或缩短他们的住宿时间。但是当我回来时,我似乎无法正确填充字段,以便我的最小/最大日期规则保持不变。如何在下面修改我的代码,以确保在(重新)插入值时保留我的最小/最大规则。
//CORE DATEPICKER FUNCTION
$(document).ready(function () {
$.datepicker.setDefaults({dateFormat: 'mm/dd/yy',minDate: +3,maxDate: "1Y +3D",changeMonth: true,firstDay: 1,changeYear: true,numberOfMonths: 2,constrainInput:true,beforeShowDay:nationalDays,});
$('#datepicker_start').datepicker({
onSelect: function(selectedDate) {
var minDate = $(this).datepicker('getDate');
if (minDate) {minDate.setDate(minDate.getDate() + 3);}//min nights required
$('#datepicker_end').datepicker('option', 'minDate', minDate || 1);
days();
}}).val('12/11/2012');
$('#datepicker_end').datepicker({minDate: 1, onSelect: function(selectedDate) {
var maxDate = $(this).datepicker('getDate');
if (maxDate) {maxDate.setDate(maxDate.getDate() - 1);}
$('#datepicker_start').datepicker('option', 'maxDate', maxDate); // Date - 1
days();
}}).val('12/15/2012');
$('#datepicker_start,#datepicker_end').change()
});
答案 0 :(得分:1)
基本上,您需要能够运行与onSelect
选项中相同的代码。通过将该代码包装在单独的函数中,您可以在页面加载时以及onSelect
处理程序中调用该函数。
function setEndMin(){
var minDate = $('#datepicker_start').datepicker('getDate');
if (minDate) {
minDate.setDate(minDate.getDate() + 3);
} //min nights requires
$('#datepicker_end').datepicker('option', 'minDate', minDate || 1);
}
$('#datepicker_start').val('12/11/2012').datepicker({
onSelect: function(selectedDate) {
setEndMin();
}
});
/* after create both pickers can process min/max*/
setEndMin()