繁体   English   中英

Parsley远程和服务器端验证(无法从json对象获取内容)

[英]Parsley Remote and Server Side Validation (can't get content from json object)

我正在尝试验证我们的数据库中是否已存在电子邮件。 我总是从Ajax请求中获得200状态代码,但是我得到的请求主体看起来像这样。 如果该电子邮件不存在并且可用(结果应该返回true),则Result = 1;如果该电子邮件已经存在于数据库中(则from应该返回false并且不验证),则Result = 0。 但是,我一直在控制台中获取未定义的数据。 好像我不知道如何将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 /> 

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

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

如果任何人将来遇到问题,都可以使用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM