jQuery验证与Aj​​ax表单提交冲突

时间:2013-01-14 15:45:08

标签: jquery jquery-validate

  

可能重复:
  jQuery validation: some of the required field not filled but the form can still be submitted

我使用jquery验证(http://bassistance.de/jquery-plugins/jquery-plugin-validation/)进行表单验证:

HTML:

<form id="formID" action="/processForm" method="post">
  ...
  <input type="submit" value="Submit" />
</form>

jQuery的:

$("#formID").validate({
  onkeyup:false,
  rules: {
    ...
  },
  messages: {
    ...
  }
});


// Submit the form by Ajax
$(document).ready(function() {
  $('.formID').ajaxForm({
    success: function(returnData) {
      $('#content').html(returnData);
    }
  });
});

现在表单似乎是由validate()函数提交的,而不是由Ajax函数提交的。

我如何仍然使用Ajax功能?

2 个答案:

答案 0 :(得分:1)

  

现在表单似乎是由validate()函数提交的,而不是由。{1}}函数提交   Ajax函数。我如何仍然使用Ajax函数?

那是因为validate()插件已经内置了submitHandler:。以下是如何正确使用它并避免在同一submit事件中执行的多个函数之间的潜在冲突。

$(document).ready(function() {

    $("#formID").validate({
      onkeyup:false,
      rules: {
        ...
      },
      messages: {
        ...
      },
      submitHandler: function(form) {
          form.ajaxForm({
              success: function(returnData) {
                  $('#content').html(returnData);
              }
          });
      }
    });

});

答案 1 :(得分:-1)

试试这个JS:

$('#formID').on('submit',function(){

// call your function which send AJAX  reuest
// Or code of sending ajax reauest

return false;

})