JQueryUI DatePicker для диапазона дат не удается проверить, когда текстовое поле даты очищается с помощью клавиатуры - PullRequest
2 голосов
/ 11 ноября 2011

Я использую средство выбора даты jqueryUI для диапазона дат, как в этом демо .Невозможно подтвердить Кому как будущую дату до С в следующем случае:

  1. В дате ОТ выберите 19.11.2011.Теперь перейдите к ноябрю 2011 года в датировщике TO, вы не можете выбрать дату до «19.11.2011».Это нормально и ожидаемое поведение

  2. Теперь поместите курсор в текстовое поле ИЗ выбора даты с помощью мыши.Выберите выбранную дату, т.е. 19.11.2011, и удалите, т.е. сделайте текстовое поле пустым.На данный момент 2 текстовых поля являются пустыми.

  3. Теперь перейдите к датчику выбора 'TO'. Проверьте на NOV 2011. Все даты до 19.11.2011 по-прежнему отключены, что не требуется.поведение.

Чтобы решить эту проблему, я создал текстовые поля readonly, но мне нужно лучшее решение этой проблемы, чтобы пользователь мог вводить дату с клавиатуры, а также выбирать с помощью мыши.

1 Ответ

1 голос
/ 12 ноября 2011

Это связано с тем, что логика для установки minDate и maxDate находится в приемнике событий select (который не срабатывает при полном удалении даты из поля средства выбора даты). Вместо этого вы можете привязаться к событию change:

var dates = $("#from, #to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
}).bind("change", function() {
    var option = this.id == "from" ? "minDate" : "maxDate",
        selectedDate = this.value,
        instance = $(this).data("datepicker"),
        date = $.datepicker.parseDate(instance.settings.dateFormat ||
             $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
        dates.not(this).datepicker("option", option, date);        
});

Пример: http://jsfiddle.net/TMnRX/

...