jQuery - почему ajaxForm обходит процедуру проверки? - PullRequest
1 голос
/ 08 августа 2010

У меня есть следующий фрагмент кода:

$(document).ready(function () {
      // bind 'regFormBody' and provide a simple callback function
      $('#regFormBody').ajaxForm(function() { 
          alert("Thank you for your comment!"); 
      }); 

      // validate the #regFormBody form when it is submitted
      $("#regFormBody").validate({
        submitHandler: function(form) { 
          alert('form is submitted');
        },        
        rules: {
          ...
        },
        messages: {
          ...
        }
      });
}      

Проблема в том, что после добавления

    // bind 'regFormBody' and provide a simple callback function
    $('#regFormBody').ajaxForm(function() { 
        alert("Thank you for your comment!"); 
    }); 

проверка формы не работает вообще.Я всегда вижу сообщение с предупреждением («форма отправлена»), даже не вводя никакой информации в форму.

Можете ли вы рассказать мне, как решить эту проблему?

Спасибо

1 Ответ

3 голосов
/ 08 августа 2010

Вы можете расширить свой объект параметров для .ajaxForm(), например:

$('#regFormBody').ajaxForm({
  beforeSubmit: function() {
    return $('#regFormBody').valid();
  },
  success: function() { 
    alert('Thanks for your comment!'); 
  } 
});

Это приведет к запуску проверки перед отправкой, а если это не .valid() это остановит отправку, как вы хотите.

...