Вот решение, которое я придумала после долгих поисков решения проблемы, которая, на мой взгляд, является распространенной. Это эффективно «сбрасывает» входные данные в общий диапазон совместимых дней. Значение: если у меня есть два поля, одно может использоваться для ограничения другого, а другое может переопределить оригинал, если это необходимо. Цель этого состоит в том, чтобы всегда гарантировать, что между этими двумя полями есть только конечный диапазон дней (или месяцев или чего-то еще). Этот конкретный пример также ограничивает количество времени в будущем, когда что-либо может быть выбрано в любом поле (например, 3 месяца).
$("#startdate").datepicker({
minDate: '+5',
maxDate: '+3M',
changeMonth: true,
showAnim: 'blind',
onSelect: function(dateText, inst){
// Capture the Date from User Selection
var oldDate = new Date(dateText);
var newDate = new Date(dateText);
// Compute the Future Limiting Date
newDate.setDate(newDate.getDate()+5);
// Set the Widget Properties
$("#enddate").datepicker('option', 'minDate', oldDate);
$("#enddate").datepicker('option', 'maxDate', newDate);
}
});
$("#enddate").datepicker({
minDate: '+5',
maxDate: '+3M',
changeMonth: true,
showAnim: 'blind',
onSelect: function(dateText, inst){
// Capture the Date from User Selection
var endDate = new Date(dateText);
var startDate = new Date(dateText);
// Compute the Future Limiting Date
startDate.setDate(startDate.getDate()-5);
// Set the Widget Properties
$("#startdate").datepicker('option', 'minDate', startDate);
$("#startdate").datepicker('option', 'maxDate', endDate);
}
});