jQueryvalidation:仅在validation字段时提交表单

我正在使用下面的代码validation我的表单。 validation很顺利,但提交表单时遇到问题。 问题是:每次单击“发送表单”按钮时,表单都会提交到php文件,无论表单是否未经过validation。

我该如何解决这个问题?

我一直在研究submitHandler,但我不知道如何使用它与ajax和序列化..

非常感谢!

 $(document).ready(function(){ $("#form").validate({ rules: { name: { required: true }, lname: { required: true } }, messages: { name: { required: "* required" }, lname: { required: "* required" } } }); //end validate $('#form').submit(function() { theUrl = 'form.php'; var params = $(this).serialize(); $.ajax ({ type: "POST", url: theUrl, data: params, processData:false, async:false, success: function(result) { //if (data != "") alert (data); } }); //return false; }); //end submit }); //end document ready  

您需要将AJAX请求代码放在validate插件的submitHandler参数中。 目前,AJAX请求正在submit()事件上运行,与任何validation结果并行。 试试这个:

 $(document).ready(function(){ $("#form").validate({ rules: { name: { required: true }, lname: { required: true } }, messages: { name: { required: "* required" }, lname: { required: "* required" } }, submitHandler: function(form) { theUrl = 'form.php'; var params = $(form).serialize(); $.ajax ({ type: "POST", url: theUrl, data: params, processData: false, async: false, success: function(result) { //if (data != "") alert (data); } }); } }); //end validate }); 

有关submitHandler参数的更多信息。