jQuery datepicker:预选第二个datepicker的月份

时间:2013-03-01 10:28:29

标签: javascript jquery calendar datepicker

我有两个日期采访者:到达和离开。现在,如果有人选择4月26日抵达,应该预先选择离开日期选票到4月(目前是3月)。那么我该如何实现呢?

我尝试了以下内容:

$( "#arrival" ).datepicker({
    buttonImage: 'fileadmin/templates/images/calendar.png',
    buttonImageOnly: true,
    changeMonth: true,
    changeYear: true,
    showOn: 'both',
    buttonText: 'arrival',
    onSelect: function(){
        var arrivalDate = $(this).datepicker('getDate').getDate();
        var arrivalMonth = $(this).datepicker('getDate').getMonth();
        var arrivalYear = $(this).datepicker('getDate').getFullYear();
        $('#departure').datepicker({ defaultDate: new Date(arrivalYear,arrivalMonth,01) });
    }
});
$( "#departure" ).datepicker({
    buttonImage: 'fileadmin/templates/images/calendar.png',
    buttonImageOnly: true,
    changeMonth: true,
    changeYear: true,
    showOn: 'both',
buttonText: 'departure'
}); 

setDate将填写不需要的文本输入字段。这可能吗?

2 个答案:

答案 0 :(得分:1)

<强>问题

目前在您的onSelect回调中,您尝试重新初始化departure元素,以便更改其defaultDate选项:

$('#departure').datepicker({ defaultDate: new Date(arrivalYear,arrivalMonth,01) });

但是,在初始化之后,datePicker选项应该以这种形式设置,而无需重新初始化元素:

datePicker('option','some-option','some-option-value').

<强>解决方案

使用正确的表单设置defaultDate元素的depature选项。

例如:

...
var departure_date = new Date(arrivalYear,arrivalMonth,01);
$('#departure').datepicker('option','defaultDate', departure_date);
...

参见 jsFiddle demo

答案 1 :(得分:0)

首先计算该值,然后像这样设置

$( "#departure" ).val($("#arrival").val())datepicker(
 ......

);