我们在web开发中,常常会碰到ajax无刷新校验的情况,根据后台返回的值来判断前台判断是否通过,此时如果没有对$.ajax()的一些小细节进行操作,很容易出现许多怪异情况。
具体场景代码如下:
// 用户名的验证==========================
function doUsername() {
var t = $("input[name=username]");
var username = t.val();
var span = t.next();
//①定义一个标记
var flag = false;
if (/^\w{3,6}$/.test(username))
{
$.ajax({
type : "POST",//请求方式
url : "user_checkUsername.action",
async : false,
cache : false,//必须设置为同步!!!
dataType : "json",//数据类型text xml json script jsonp
data : {
username : username
},
success : function(data)
{
var status = data.hashMap1.status;
if (status == "no")
{
span.html("用户名已经存在了哦").css({
color : "red",
fontSize : "12px"
});
//②改变标记状态
flag = false;
}
if (status == "ok") {
span.html("填写正确").css({
color : "green",
fontSize : "12px"
});
//②改变标记状态
flag = true;
}
}
});
//③只能在success后返回被更改的标记,否则将出现undefined等怪异情况!!!
return flag;
} else {
span.html("包含数字、字母、下划线,长度在3-6之间").css({
color : "red",
fontSize : "12px"
});
return flag;
}
}
怎么样,是否能够解决您的问题呢?~
by yanchenrong.