假设我有一个登录表单,其中有两个表单元素,即用户名和密码。但在客户端验证中,我没有在用户名中设置必需选项。我的目标是在进行客户端验证之后,我想通过ajax从服务器端对此进行变更,其中将在服务器端验证用户名字段,如果用户名为空,则将php检查和响应作为json。我想解析数据并显示验证错误,并在登录表单中显示登录验证错误消息到不同的div元素。但是无法得到这个。请帮我解决这个问题。
$(document).ready(function(){
// initialize validator and add the custom form submission logic
$("#LoginForm").validator().submit(function(e) {
var form = $(this);
// client-side validation passed
if (!e.isDefaultPrevented()) {
$.ajax({
type: "POST",
url: "process.login.php",
data: $('#LoginForm').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
window.location=msg.txt;
}
}
});
// prevent default form submission logic
e.preventDefault();
}
});
});
答案 0 :(得分:0)
我想你想知道php(服务器)验证响应是如何工作的?
<?php
// your validation here ...
$msg = array("status"=>1, "text"=>"some text here");
echo json_encode($msg);
答案 1 :(得分:0)
这可能会有所帮助..我必须在隐藏的表单变量中欺骗您的响应,但您应该获取消息和状态并处理它。还要注意服务器端错误。
我还按照你设置的方式修复了你的验证,但是你可能想要阅读关于jQuery验证器的最佳实践的文档。
http://jsfiddle.net/Xedus129/y6fA3/
ajax调用中的错误处理/成功处理:
success: function (msg) {
var status = parseInt(msg.status);
var message = msg.message;
return handleResponse(status,message);
},
error: function (xhr, ajaxOptions, thrownError) {
//this is a fatal error
alert(xhr.status);
alert(thrownError);
}
希望这就是你所要求的,很难从你的问题中得知。