最近一直被一个问题困扰着:原代码:
function checkUserName(){
var checkUserName=false;//全局变量
$.post("url",data:{userName:userName},function (result){
if(result == true){
checkUserName = true;
}else{
checkUserName=false;
}
})
alert(checkUserName);//永远是false
}
var checkUserName=false;//全局变量
$.post("url",data:{userName:userName},function (result){
if(result == true){
checkUserName = true;
}else{
checkUserName=false;
}
})
alert(checkUserName);//永远是false
}
问了大虾才知道,要使用同步ajax,不要使用异步,上面的函数是,ajax 还没有执行完,函数已经返回了,里面还没有来的及赋值,函数已经返回值了。
修改后:
function checkUserName (){
var checkUserName=false;
$.ajax({
async:false,//同步
url:"url",
type:'POST',
data:{userName,userName},
suceess:function (result){
if(result == true){
checkUserName=true;
}else{
checkUserName=false;
}
}
});
alert(checkUserName);//正常了
}
var checkUserName=false;
$.ajax({
async:false,//同步
url:"url",
type:'POST',
data:{userName,userName},
suceess:function (result){
if(result == true){
checkUserName=true;
}else{
checkUserName=false;
}
}
});
alert(checkUserName);//正常了
}