javascript中更新的表单验证错误
根据下面的编码,如果某些数据错误,它将发出false警报。如果确认的pw与密码不同,则可以正常工作。但是,如果loginID检查似乎有一些问题。它分别警告true789 false false 123 false456。为什么结果不假123假456假789假?因为json的延迟?如何解决javascript中更新的表单验证错误,javascript,Javascript,根据下面的编码,如果某些数据错误,它将发出false警报。如果确认的pw与密码不同,则可以正常工作。但是,如果loginID检查似乎有一些问题。它分别警告true789 false false 123 false456。为什么结果不假123假456假789假?因为json的延迟?如何解决 var result = "true"; $('#test').click(function(){ validation(); alert(result); }); function v
var result = "true";
$('#test').click(function(){
validation();
alert(result);
});
function validation(){
result = "true";
var loginID = $("#loginID").val();
var role = $("#role").text();
// check Login Name
if (loginID == "" || loginID == null){
$('#errorID').empty();
$('#errorID').append(
'<h6>' + "The Login Name cannot be empty" + '</h6>'
);
$("#errorID").show();
result="false";
} else {
$.ajax({
type: "GET",
dataType: "jsonp",
jsonpCallback: "jsoncallback",
data: {
ID: loginID,
role: role
},
url: "http://mydomain.com/checkID.php?jsoncallback=?",
success: function(data){
if (data[0].data.user_name!=""){
result="false";
alert(result+"123");
$('#errorID').empty();
$('#errorID').append(
'<h6>' + "The Login Name " + data[0].data.user_name +
" is used." + '</h6>'
);
$("#errorID").show();
alert(result+"456");
}
},
error: function(jqXHR, textStatus, errorThrown){
alert("Request failed: " + textStatus + errorThrown);
result="false";
}
}); //end of ajax
}
alert(result+"789");
return result;
} // end of #validation
var result=“true”;
$(“#测试”)。单击(函数(){
验证();
警报(结果);
});
函数验证(){
result=“true”;
var loginID=$(“#loginID”).val();
var role=$(“#role”).text();
//检查登录名
if(loginID==“”| | loginID==null){
$('#errorID').empty();
$('#errorID')。追加(
“+”登录名不能为空“+”
);
$(“#errorID”).show();
result=“false”;
}否则{
$.ajax({
键入:“获取”,
数据类型:“jsonp”,
jsonpCallback:“jsoncallback”,
数据:{
ID:loginID,
角色:角色
},
url:“http://mydomain.com/checkID.php?jsoncallback=?",
成功:功能(数据){
如果(数据[0]。数据。用户名!=“”){
result=“false”;
警报(结果+“123”);
$('#errorID').empty();
$('#errorID')。追加(
''+“登录名”+数据[0]。data.user\u Name+
“已使用。”+“”
);
$(“#errorID”).show();
警报(结果+456”);
}
},
错误:函数(jqXHR、textStatus、errorshown){
警报(“请求失败:+textStatus+errorshown”);
result=“false”;
}
});//ajax的结束
}
警报(结果+789”);
返回结果;
}//结束#验证
ajax调用是异步完成的。它进入ajax()函数,然后继续,当结果最终出现时,将触发警报或事件处理程序中的任何内容。
您可以在ajax调用中添加一个async:false
,它将改变运行方式。789警报将仅在ajax调用完成并响应后运行。
另外,如果您的ajax调用是对您的域进行的,那么您不需要JSONPCCallback,如果响应的标题是application/json
,那么您也应该删除数据类型,并将其留给jQuery来正确处理