Я пытаюсь привести в порядок все маленькие буйки на моем веб-сайте, но используя jQuery для всего. Это будет включать использование jQuery UI для datepicker.
Есть два экземпляра datepicker, ArrivalDate и DepartureDate, и мне нужно динамически установить дату отправления на день, следующий за датой, когда пользователь только что ввел как ArrivalDate. т.е. если пользователь выбрал 25 Dec в качестве параметра 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".
Это можно решить довольно легко, вот рабочая скрипка: 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 вместо val в строке перед моим изменением. Или, может быть, оба.