2016-12-28 59 views
1

我已经通过其他线程,并使用一个供参考,但仍然无法找到解决方案。
我的问题是:Ajax请求之前的Jquery表单验证

我呼吁按一下按钮的功能,现在该功能验证我尝试后使用Ajax请求提交处理数据之后的验证,问题是我的领域越来越验证,但Ajax请求不调用。

<input type="button" value="Register" id="registerP" onclick="registerPatient()" class="form-control input-sm btn-success "> 

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){} 
     }); 
    } 
}); 
} 

但是,如果我不使用验证和直接调用Ajax我能够发布数据。请提出我要去哪里错误。

+0

给予网址或上传完成,这样就可以清楚地看到 –

+0

我不力明白你的意思。 –

回答

2

你可以尝试这样它调用jQuery的表单验证,并检查确认:

$(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){} 
    }); 
    } 
} 
+0

感谢您分享代码。 –

+0

您的欢迎:) –

0

将您的data语法更改为此。

data: {patientName:patientName}, 

确保您有醒目的同名“patientName”的方法,从页面调用其职位上后的参数。

这应该工作。

同时检查您是否在您的帖子中获得了patientName参数值。首先检查“alert”并传递patientName参数。你会知道你正在得到什么,为什么没有发生帖子。

+0

如果我没有使用验证码,那就是保存数据,即当调用函数时调用ajax。这意味着这个代码Ajax没有被调用,否则它会给我在控制台中的错误。 –