DatePicker onClose выпуск

0

Из исследования на этом сайте я нашел способ использовать 2 datepickers. Если вы выбираете дату на первой, вторая будет автоматически показывать с выбранной датой в качестве нового minDate. Вы можете увидеть это в действии на моем тестовом сервере здесь: http://www.zinius.nl/trips

Проблема, с которой я столкнулась, возникает в этой ситуации: выберите поле "Дата заезда", но не выбирайте дату и нажмите в другом месте. Вы не сможете получить всплывающее окно datepicker в поле "Дата заезда", пока не обновите всю страницу или не выберите дату выписки.

Это код, который я использую:

$( "#datepicker1" ).datepicker({
showOn: 'both',
buttonImage: 'images/ico/calendar.png',
buttonImageOnly: true,
minDate: 0,
firstDay: 0,
dateFormat: 'mm-dd-yy',
changeMonth: false,
numberOfMonths: 1,
onClose: function( selectedDate ) {
    var minDate = $(this).datepicker('getDate');
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
    $( "#datepicker2" ).datepicker( "option", "minDate", newMin );
    $( "#datepicker2" ).datepicker( "show" );
}
});
$( "#datepicker2" ).datepicker({

showOn: 'both',
buttonImage: 'images/ico/calendar.png',
buttonImageOnly: true,
minDate: '+1d',
changeMonth: false,
firstDay: 0,
dateFormat: 'mm-dd-yy',
numberOfMonths: 1,
onClose: function( selectedDate ) {
}
});

Я попытался заменить onClose на onSelect. Это решает проблему, но когда я выбираю дату на datepicker1, datepicker2 появляется и исчезает со вспышкой.

У кого-нибудь есть решение, чтобы заставить это работать должным образом?

Спасибо, Гильяно

  • 0
    onClose проверяет, определен ли minDate и переносить его вместе с остальной частью скрипта.
Теги:
datepicker

2 ответа

0
Лучший ответ

Попробуйте изменить функцию onClose на первом datePicker с помощью

...,
onClose: function( selectedDate ) {
  var minDate = $(this).datepicker('getDate');
  if(minDate){
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
    $( "#datepicker2" ).datepicker( "option", "minDate", newMin );
    $( "#datepicker2" ).datepicker( "show" );
  }
}
  • 0
    Это работает как шарм! Очень признателен!!
0

Посмотрев на консоль, я вижу, что эта ошибка регистрируется:

Невозможно вызвать метод getDate из null

Это означает ваше выражение:

var minDate = $(this).datepicker('getDate');

вызывает проблему. Что вы можете сделать, так это сначала проверить, действительно ли selectedDate (переданный на onClose вызов onClose) действителен или нет, прежде чем пытаться getDate на нем.

onClose: function(selectedDate) {
    if (selectedDate) {
        ...
    }
}
  • 0
    Ты прав. Решил это с условным заявлением, предоставленным Марко. Спасибо за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню