2013-11-20 4 views
0

Я пытаюсь привести в порядок все маленькие свистки на моем сайте, но используя jQuery для всего. Это будет включать использование jQuery UI для datepicker.jQueryUI Datepicker with Two Fields

Есть два экземпляра datepicker, ArrivalDate и DepartureDate, и мне нужно динамически установить дату отправления на день, следующий за датой, когда пользователь только что ввел как ArrivalDate. т. Е. Если пользователь выбрал 25 декабря в качестве параметра ArrivalDate, у DepartureDate должно быть 26 декабря по умолчанию, а все даты до 26 декабря должны быть отключены.

Я пробовал помощь нескольких вещей, которые я нашел на StackOverflow и в других местах, но никто из них, похоже, не работает для меня. Это то, что я в настоящее время:

$('#ArrivalDate').datepicker({ 
minDate: 0, 
defaultDate: 0, 
dateFormat: "d M yy", 
changeMonth: true, 
changeYear: true, 
onClose: function(dateText, inst){ 
    var d = $.datepicker.parseDate(inst.settings.dateFormat, dateText); 
    d.setDate(d.getDate()+1); 
    $('#DepartureDate').val($.datepicker.formatDate(inst.settings.dateFormat, d)); 
} 

}), 
$('#DepartureDate').datepicker({ 
minDate: "d", 
defaultDate: "d", 
dateFormat: "d M yy", 
changeMonth: true, 
changeYear: true, 
}), 

но DepartureDate до сих пор лечит MinDate и defaultDate как '0'.

ответ

0

Эту проблему можно решить довольно легко, вот рабочая скрипку: http://jsfiddle.net/dwaddell/Q2kkG/

onClose: function (dateText, inst) { 
     var d = $.datepicker.parseDate(inst.settings.dateFormat, dateText); 
     d.setDate(d.getDate() + 1); 
     $('#DepartureDate').val($.datepicker.formatDate(inst.settings.dateFormat, d)); 
     $('#DepartureDate').datepicker('option', { 
      minDate: $.datepicker.formatDate(inst.settings.dateFormat, d) 
     }); 
    } 

Также вы можете проверить API здесь http://api.jqueryui.com/datepicker/#method-setDate, вы можете захотеть использовать SETDATE вместо Валу на линии перед тем мое изменение. Или, может быть, оба.