1

我有两个日期选择器:到达和离开。现在,如果您选择 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将填写不需要的文本输入字段。这可能吗?

4

2 回答 2

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 演示

于 2013-03-01T10:43:50.163 回答
0

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

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

);
于 2013-03-01T10:30:29.587 回答