JQuery проверить invalidHandler с предупреждением по-прежнему отправляет в Firefox? - PullRequest
3 голосов
/ 07 сентября 2011

Не могу понять это вообще. Использование validate jQuery (1.6.2) с плагином validate (1.8.1). Получите следующий код invalidHandler, который отлично работает во всех браузерах, если нажать кнопку отправки. Однако, если форма отправляется нажатием клавиши ввода на клавиатуре после заполнения любого поля в Firefox (версии 5 и 6 в любом случае), вы получаете предупреждение о количестве ошибок, но форма все равно отправляется! Форма не отправляется в других браузерах, и если строка предупреждения удаляется, она отлично работает в Firefox. Но нам нужно предупреждение, поэтому, если у кого-то есть какие-либо идеи о том, как это исправить, это будет очень высоко оцененным - я не привык к тому, что что-то происходит только в Firefox! :)

invalidHandler: function(form, validator) {
           var errors = validator.numberOfInvalids();
           if (errors)
           {
                   var message = (errors == 1)
                     ? '1 field has an error. It has been highlighted'
                     : errors + ' fields have errors. They have been highlighted';
                     alert(message);
                     //return false;
           }

}

Ответы [ 2 ]

0 голосов
/ 03 сентября 2013

У меня тоже была эта проблема. Я думаю, что происходит из-за того, что вызов alert () блокирует выполнение функции invalidHandler, что нарушает нормальное функционирование jQuery.validate.

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

setTimeout('alert("'+message+'")', 1)

Хаки, но работает!

0 голосов
/ 07 сентября 2011

Вы пытались раскомментировать return false?

В документации JQuery указано, что false будет:

... отменить действие отправкивызов .preventDefault () для объекта события или возвращение false из нашего обработчика.

...