大侠们好,我在用jquery的Ajax发现一个问题,就是在执行回调函数时,无法为变量bl赋值,我的意思是return bl,如果bl为true就提交,否则不提交,请各位大侠帮个忙!
function check(){
var bl = false;
$.post("loginAction",{username:name,password:psw},function(data){
var obj = eval('(' + data + ')');
var exist = obj["exist"];
if(exist=="yes"){
bl = true;
}else{
bl = false
alert("用户名或密码错误!");
}
},"html");
// 即使exist为yes,bl也依然为false,貌似在执行回调函数function(data)时,未吧值赋给bl
return bl;}
function check(){
var bl = false;
$.post("loginAction",{username:name,password:psw},function(data){
var obj = eval('(' + data + ')');
var exist = obj["exist"];
if(exist=="yes"){
bl = true;
}else{
bl = false
alert("用户名或密码错误!");
}
},"html");
// 即使exist为yes,bl也依然为false,貌似在执行回调函数function(data)时,未吧值赋给bl
return bl;}
if(exist=="yes")语句没有执行吧...
if(exist=="yes"){
return true;
}else{
alert("用户名或密码错误!");
return false;
}
function check(callback){//callback提交函数
$.post("loginAction",{username:name,password:psw},function(data){
var obj = eval('(' + data + ')');
var exist = obj["exist"];
if(exist=="yes"){
if(typeof(callback)=='function'){
callback();
}
}else{
bl = false
alert("用户名或密码错误!");
}
},"html");
}
if(typeof(callback)=='function'){//这里少了个括号
函数里面异步请求成功后返回值是有问题的
如:var isTrue = check();//check();函数里面有异步请求
alert(isTrue);
这里的alert(isTrue)会是check函数里面异步请求成功后才返回的值吗? 如果过check里面的请求要2秒才能请求成功 alert(isTrue)不是要等2秒才执行? 答案是否定的