假设我有一个登录表单,其中两个表单元素即用户名和密码。但在客户端验证我没有设置用户名所需的选项。我的目标是让客户端验证后,我想通过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();
}
});
});
我猜你想知道php(服务器)验证响应是如何工作的?
<?php
// your validation here ...
$msg = array("status"=>1, "text"=>"some text here");
echo json_encode($msg);
这可能有帮助。我不得不欺骗你的响应在隐藏的形式变量,但你应该抓住消息和状态,并处理它。还可以捕获服务器端错误。
我也修复了你的验证,你有它设置的方式,但你可能想要阅读关于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);
}
希望这就是你想问的,从你的问题中很难看出