2012-04-04 126 views
0

我的问题是使用Jquery验证我的表单。我的验证仅适用于validate函数,但后来我添加了submit选项,验证没有发生。我想验证我的表单,然后执行提交。Jquery验证不起作用。 Jquery - Javascript

$(document).ready(function() { 
    $('#ReqCreateForm').validate({ 
     invalidHandler: function (e, validator) { 
      var errors = validator.numberOfInvalids(); 
      if (errors) { 
       var message = errors == 1 
       ? 'Missing 1 field' 
       : 'Missing fields'; 
       $("div.error span").html(message); 
       $("div.error").show(); 
      } else { 
       $("div.error").hide(); 
      } 
     }, 
     onkeyup: false, 
     highlight: function (element) { 
      $(element).addClass('error'); 
     }, unhighlight: function (element) { 
      $(element).removeClass('error'); 
     } 
    }); 

    $('#ReqCreateForm').submit(function() { 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: $(this).serialize(), 
      success: function (result) { 
       alert("All Great!"); 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      } 
     }); 
     return false; 
    }); 
}); 

谢谢先进。

解决方案:

的解决方案是非常简单的。在$.ajax之前,向我的提交选项添加了以下代码。

if (!$(this).valid()) { 
     return false; 
    } 

回答

1

你必须调用有效的功能提交按钮的点击处理程序如下:

if($('#ReqCreateForm').valid()) 
{ 
    //then do your thing 
} 
+0

你的答案显示了我的方式。谢谢。 – 2012-04-04 19:05:41

0

我用this插件submiting使用Ajax的形式。它有一个名为onbeforesubmit的事件,您可以在这里毫无问题地调用验证。也许你想尝试一下。在你的情况下,你需要捕捉事件befor提交数据到ajax调用,以验证它(如果你不想使用我建议的插件)

+1

感谢您的回答。我找到了一个简单的方法来做到这一点。干杯。 – 2012-04-04 19:04:57