Плагин Jquery Validation, динамическая проверка формы - PullRequest
2 голосов
/ 08 февраля 2010

Я использую плагин проверки Jquery для форм, загружаемых через Ajax (динамические формы). Я знаю, что в Jquery 1.4 теперь возможны живые события при отправке. Теперь проблема в том, что я хочу показать подтверждающее сообщение после проверки динамической формы. Мой код выглядит так:

$('.dynamicForm').live('submit',function(){
   $(this).validate();
   if($(this).valid()){
      if(!confirm('Are you sure?'))
         e.preventDefault();
   }
});

Это не работает, как ожидалось. Почему-то сначала показывается подтверждение, а затем во второй раз, когда я отправляю форму, это время проверки. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 08 февраля 2010

Каким-то образом это работает:

$('.dynamicForm').live('mouseover',function(){
    $(this).validate({
        submitHandler:function(form){
            if(confirm("Are you sure?")){
                form.submit();
            }
        }
    });
});
3 голосов
/ 08 февраля 2010

Используйте функцию submitHandler, доступную в опциях проверки :

$(".dynamicForm").validate({
   submitHandler: function(form) { //Only runs when valid
     if(confirm('Are you sure?'))
       form.submit();
   }
})

Из документов - submitHandler :

Обратный вызов для обработки фактической отправки, когда форма действительна. Получает форму в качестве единственного аргумента. Заменяет отправку по умолчанию. Правильное место для отправки формы через Ajax после ее проверки.

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