2013-03-01 4 views
1

У меня есть два датпикера: прибытие и отъезд. Теперь, если вы выбираете 26 апреля по прибытии, дату отправления вылета должно быть предварительно выбрано в апреле (в настоящее время это будет Март). Итак, как я мог это реализовать?jQuery datepicker: preselect month of second 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

Проблема

В настоящее время в вашем 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

0

первый caluculate значение затем установить, как этот

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

); 
+0

В чем разница между '' val' и setDate'? Оба, похоже, делают то же самое. – testing

+0

Я не знаю, почему именно. Я использовал вот так: – PSR

+0

Кажется, это поле ввода. Что я хочу сделать, так это то, что во втором datepicker месяц должен быть уже в апреле (как и первый), когда он нажимает на datepicker и выбирает дату. Таким образом, прямо не устанавливается значение - только выбор месяца. – testing

Смежные вопросы