在Ajax请求之前进行Jquery表单validation

我已经通过其他线程并使用一个参考,但我仍然无法找到解决方案。
我的问题是:

我正在按钮上点击一个函数现在该函数validation后validation我试图在提交处理程序中使用ajax请求发布数据,问题是我的字段正在validation但是没有调用Ajax请求。

 function registerPatient(){ $("#patientRegistration").validate({ rules: { patientName: { required: true, textOnly: true }, }, messages: { patientName: { required: "Please enter the full name", }, }, submitHandler: function(form) { $.ajax({ type: "POST", url: "/LoginMavenSpringMVC/appointment/savePatient", data: "patientName=" + patientName, success: function(response){}, error: function(e){} }); } }); } 

但是,如果我没有使用validation并直接调用Ajax,我可以发布数据。 请告诉我哪里错了。

您可以尝试这样调用jquery表单validation并检查是否已validation:

 $(document).ready(function(){ $("#patientRegistration").validate({ rules: { patientName: { required: true, textOnly: true }, }, messages: { patientName: { required: "Please enter the full name", }, } }); }); function registerPatient(){ var IsValid=$("#patientRegistration").valid(); if(IsValid){ var patientName=""; //value for patient name $.ajax({ type: "POST", url: "/LoginMavenSpringMVC/appointment/savePatient", data: {"patientName": patientName}, success: function(response){}, error: function(e){} }); } } 

将ajax的data语法更改为此。

 data: {patientName:patientName}, 

确保你有一个关于同名“patientName”的捕获方法的参数,以便从post页面调用它的post。

这应该工作。

还要检查您的post中是否获得了patientName参数值。 为此,首先通过“alert”检查并传递patientName参数。 你会知道你得到了什么以及为什么不发布post。