) и так в моем событии onClose, добавленном (измененном в соответствии с приведенным выше примером) после проверки: $ ("form #birthdate"). trigger ("blur"); И теперь это работает.

ужно добавить пользовательскую проверку (я думаю) для проверки ввода от пользователя. Вот мой пример использования: я использую указатель даты jquery ui для выбора дат с локализацией, подобной этой:

$.datepicker.setDefaults( $.datepicker.regional[ currentLocale ] );

Я использую плагин проверки bassistance и использую правила дляdate:true и такие не работают с различными форматами (или, если они действительно, пожалуйста, скажите мне, как!). Так что я сделал свои собственные методы проверки даты, как это

   $.validator.addMethod("validDate", function(value) {
        return parseDateString(value) != null;
    }, jQuery.validator.messages.date);

Все это работает очень хорошо, за исключением того факта, что при выборе даты в указателе даты проверка запускается до изменения значения компонента! Так что я на самом деле проверяю предыдущее значение ....

У кого-нибудь есть решение для меня? Заранее спасибо:)

Ответы на вопрос(1)

Решение Вопроса

Вы можете запустить проверкупри закрытии пользователя datepicker выскакивать:

$("#birthdate").datepicker({
    onClose: function() {
        /* Validate a specific element: */
        $("form").validate().element("#birthdate");
    }
});

С помощьюvalidate«selement() Функция позволит вам проверить конкретное поле сразу.

Я создал примерВот в котором любая дата года! = 2011 вызовет неудачную проверку.

 Nigel Ellis20 февр. 2014 г., 11:23
Этот ответ мне очень помог, но я застрял на пару дней со странным вопросом. У меня есть два средства выбора даты с пользовательской проверкой, и вышеописанный метод отлично работает. Затем я через функцию JavaScript добавил еще два, и проверка выполнялась только каждый раз. Оглядываясь вокруг я нашел это (bugs.jqueryui.com/ticket/7451) и так в моем событии onClose, добавленном (измененном в соответствии с приведенным выше примером) после проверки: $ ("form #birthdate"). trigger ("blur"); И теперь это работает.
 Travis J10 июл. 2012 г., 21:18
Еще один способ использования этого подхода onClose - проверка динамического средства выбора даты. Если страница закончила загрузку, а затем добавлен элемент ввода с прикрепленным средством выбора даты, сообщение проверки будет немного не синхронизировано. Если пользователь пытается опубликовать сообщение без выбора даты, появится сообщение. При выборе даты в этом сценарии сообщение не будет удалено (если дата не выбрана во второй раз).onClose: function(){ $(this).valid();} приведет к правильной синхронизации сообщения.

Ваш ответ на вопрос