2013-03-01 90 views
1

我有两个datepickers:到达和离开。现在如果选择4月26日抵达,应该预先选择4月份的出发日期选择器(现在是3月份)。那么我怎么能实现呢?jQuery datepicker:预选第二个datepicker的月份

我试过如下:

$("#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都要填写这是不希望在文本输入字段。这可能吗?

回答

1

问题

目前你正在试图重新初始化departure元素,以改变其defaultDate选项:

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

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

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

解决方案

使用正确的形式来设置depature元素defaultDate选项。

例如:

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

jsFiddle demo

0

第一caluculate则该值在onSelect回调设置这样

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

); 
+0

是什么val'和'setDate''之间的区别?两者似乎都这样做。 – testing 2013-03-01 10:33:16

+0

我完全不知道原因。我使用这样的 – PSR 2013-03-01 10:33:51

+0

这似乎设置输入字段。我想要做的是在第二个日期选择器中,当他点击日期选择器并选择一个日期时,该月份应该已经在四月份(如第一个)。所以不要直接设置价值 - 只选择月份。 – testing 2013-03-01 10:35:28