Запустите проверку браузера и сообщения об ошибках без отправки - PullRequest
2 голосов
/ 29 марта 2012

Я пытаюсь использовать проверку html5 и ajax.

Метод checkValidity не решает мою проблему, потому что он не показывает сообщение об ошибке в пользовательском интерфейсе.

Мне нужно запустить проверку браузера (и показать сообщения об ошибках) с помощью js. Для этого я обнаружил, что должен отправить форму и предотвратить событие. то есть:

$('form#x').submit(function(e){
   e.preventDefault();
   // ajax code
 });

Это работает нормально, и код ajax выполняется только в том случае, если все поля формы действительны. Однако я понял, что после того, как форма верна, код ajax выполняется столько раз, сколько нажатие кнопки отправки WTF?

Я мог бы решить эту проблему, используя глобальный флаг:

flah = 0;
$form.submit(function(e){
    e.preventDefault();
    if(flag) return;
    flag = 1;
    //send x ajax
    // in ajax callback >> flag = 0 

});

Есть ли другой способ запустить проверку без отправки? Проблема триггера событий - ошибка браузера или проблема в моем коде?

Спасибо

1 Ответ

0 голосов
/ 29 марта 2012

попробуйте это:

$('form#x').submit(function(e){
   e.preventDefault();

    if(!this.checkValidity()){
       return false;
    }   

   // ajax code
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...