![](/img/trans.png)
[英]Form Validation required at Client side? Or if same done at Server side is enough?
[英]Server side varification after client side done
假设我有一个登录表单,其中有两个表单元素,即用户名和密码。 但是在客户端验证中,我没有在用户名中设置必需的选项。 我的目标是在进行客户端验证之后,我想通过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);
这可能会有所帮助。我不得不在隐藏的form变量中欺骗您的响应,但是您应该获取消息和状态并进行处理。 还可以捕获服务器端错误。
我还按照设置方式来验证您的验证,但是您可能需要阅读有关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);
}
希望这就是您要问的问题,很难从您的问题中分辨出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.