【问题标题】:Parsley Remote and Server Side Validation (can't get content from json object)Parsley 远程和服务器端验证(无法从 json 对象获取内容)
【发布时间】:2015-12-27 09:16:27
【问题描述】:

我正在尝试验证我们的数据库中是否已经存在电子邮件。我总是从 Ajax 请求中获得 200 状态代码,但我得到的请求正文看起来像这样。如果该电子邮件不存在且可用,则结果 =1(表单应返回 true),如果该电子邮件已存在于数据库中,则结果 = 0(发件人应返回 false 且未验证)。但是我一直在控制台中获取未定义的数据。好像我不知道如何将json对象传递给函数。

我会买啤酒给任何能帮我解决这个问题的人。谢谢。

JSON 响应

id: "1c29da8e-ca94-4ea4-a69f-f0af15f54bf5", redirectPage: "/public/actionStatus.jsp", errorText: "",…}
action: "/check.douserEmailAvailable"
data: {}
errorCode: ""
errorText: ""
id: "1c29da8e-ca94-4ea4-a69f-f0af15f54bf5"
redirectPage: "/public/actionStatus.jsp"
result: "1"
text1: ""
text2: ""
text3: ""
text4: ""
text5: ""

JQUERY 和 HTML

$(document).ready(function(){
	window.Parsley.addAsyncValidator('mycustom', function (data) {
		if (data.result == 1) {
            console.log("does not exist");
            return true;
          } else {
            console.log("already exist");
            return false;
          }
	  }, '/check.do?action=userEmailAvailable&ajax=1');
	
	
	$('#userReg').parsley();
});
			<input type="email" name="userEmail1" data-parsley-remote data-parsley-remote-options='{ "type": "POST", "data": { "token": "value" } }' data-parsley-remote-validator='mycustom' id="userEmail1" value="" required />

【问题讨论】:

    标签: javascript jquery ajax validation parsley.js


    【解决方案1】:

    传递给异步验证器的第一个参数是xhr,而不是data

    您可以使用$.parseJSON(xhr.responseText)xhr.done(function(json){...}) 等...来做您想做的事情。

    【讨论】:

      【解决方案2】:

      搞定了,如果以后有人遇到问题。

      $(document).ready(function(){
      	window.Parsley.addAsyncValidator('emailvalidation', function (data) {
      		var myResponseText = data.responseText;
      		var obj = jQuery.parseJSON(myResponseText);		
      		if (obj.result == 1) {
                  return true;
                } else {
                  return false;
                }
      	  }, '/check.do?action=userEmailAvailable&ajax=1');
      	
      	
      	$('#userReg').parsley().on('form:success', function() {
      		
      		var formData = $("#userReg").serializeArray();
      	  	var action = "<%=pdo.getRegistrationData().registrationType.toString()%>";
      	    
      	    $.post("/userRegistration.do?action="+ action +"&ajax=1", formData, 
      		    	function(data) {
      		    		window.location.href = data.redirectPage;
      		      });
      	});
      	
      	
      });

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-25
        • 2012-09-25
        • 2014-12-07
        • 2015-01-30
        • 2017-11-04
        • 1970-01-01
        • 2022-10-25
        相关资源
        最近更新 更多