我有两个日期选择器。选择开始日期后,结束日期将在x天后通过php自动分配。这很好,但我有一个问题。完成这项工作的jQuery代码,我希望它也能在页面刷新/加载时启动(开始日期保存在php会话中)。这是我的代码:
$(document).ready(function(){
$("#txtStartDate").datepicker({
onSelect: function(){
var datum = $(this).datepicker('getDate');
datum.setDate(datum.getDate() + <?php echo $nights; ?>);
$("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
}
});
$("#txtEndDate").datepicker();
});
我一直在考虑使用"onSelect,onLoad:funct…"
这是如何实现的?
创建一个单独的函数来设置结束日期,然后在onLoad事件上调用它。
function setEndDate(){
var datum = $("#txtStartDate").datepicker('getDate');
datum.setDate(datum.getDate() + <?php echo $nights; ?>);
$("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
}
则CCD_ 1
尝试删除document.ready并将其放入script标记中。
<script type="text/javascript">
$("#txtStartDate").datepicker({
onSelect: function(){
var datum = $(this).datepicker('getDate');
datum.setDate(datum.getDate() + <?php echo $nights; ?>);
$("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
}
});
$("#txtEndDate").datepicker();
</script>
如果以上不能解决您的问题,请尝试将开始日期选择器中的defaultDate: new Date
设置为以下
$(function () {
$.datepicker.setDefaults({
//Set your common attributes here for both date pickers
});
var dateFrom = $('#txtStartDate').datepicker({ defaultDate : new Date,
onSelect: function (selectedDate) {
dateTo.datepicker('option', 'defaultDate', dateFrom.datepicker('getDate')+[ x days //add days according to your need]);
}
});
var dateTo = $('#txtEndDate').datepicker();
});
将$("#txtStartDate").trigger('focus');
添加到结束
$("#txtStartDate").datepicker({
onSelect: function() {
var datum = $(this).datepicker('getDate'),
days = 2,
d = new Date(datum.getTime() + (days * 86400000)),
month = parseInt(d.getMonth(), 10)+1 < 10 ? '0'+ (parseInt(d.getMonth(), 10)+1) : parseInt(d.getMonth(), 10)+1,
day = d.getDate() < 10 ? '0'+ d.getDate() : d.getDate(),
year = d.getFullYear();
$("#txtEndDate").val(month+'/'+day+'/'+year);
}
});
$("#txtEndDate").datepicker();
$("#txtStartDate").trigger('focus');
已更新。更改可变日期以提前许多天设置结束日期。