#jquery #datepicker
#jquery #выбор даты
Вопрос:
Как я могу изменить эту функцию, чтобы изменить значение #datepicker2 на дату #datepicker1 плюс один день, если дата #datepicker1 находится после даты #datepicker2?
Итак, если даты по умолчанию для #datepicker1 и #datepicker two равны 03.11.2011 и 04.11.2011 соответственно, и я меняю #datepicker1 на 25.11.2011, #datepicker2 должен быть заполнен 26.11.2011.
Но если я изменю #datepicker1, скажем, на 28.10.2011 #datepicker2 останется неизменным.
Вот jsfiddle —> http://jsfiddle.net/hJrzp/1 /
$(function() {
var dates = $( "#datepicker1, #datepicker2" ).datepicker({
// minDate: new Date(),
// maxDate: ' 2y',
defaultDate: " 1d",
showOtherMonths: true,
selectOtherMonths: true,
// changeMonth: true,
numberOfMonths: 1,
onSelect: function( selectedDate ) {
var option = this.id == "datepicker1" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
});
Комментарии:
1. Можем ли мы упростить этот вопрос, сказав, что требование заключается в том, что при
datepicker1
измененииdatepicker2
устанавливаетсяdatepicker1
дата плюс один день? Это точное утверждение или я что-то упускаю?
Ответ №1:
Вы должны иметь возможность добавить один день, когда выбор даты является первым (т.Е. #datepicker1
). Это включает в себя некоторую арифметику даты. Таким образом, onSelect
функция будет выглядеть следующим образом:
onSelect: function( selectedDate ) {
var option = this.id == "datepicker1" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
if (this.id == 'datepicker1') {
var oneDay = 1000*60*60*24;
var plusOneDay = new Date(date.getTime() oneDay);
dates.not( this ).datepicker( "option", option, plusOneDay );
} else {
dates.not( this ).datepicker( "option", option, date );
}
}
Посмотрите на это в действии: http://jsfiddle.net/william/hJrzp/2 /.