页面加载时启动日期选择器代码


Launch datepicker code on page load

我有两个日期选择器。选择开始日期后,结束日期将在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');

已更新。更改可变日期以提前许多天设置结束日期。