求高手解决JS回调疑问
代码大致如下:使用DWR调用后台方法,然后根据返回值决定变量的值
JScript code
var flag=false;
andonStopReasonAction.validateCode($("andonReason").value,function(str){
if(str=="no")
{
alert("代码有误!可能的原因:扫描的条码数据有误,不是系统自定义的条码类型");
$("andonReason").select();
flag = false;
}else if(str=="ok")
{
flag = true;
}
}
);
alert("1---"+flag);
alert("2--"+flag);
return flag;
疑问:两次执行alert时弹出不同的值,第一次弹出flag为声明时的值false
第二次弹出的是匿名函数中更改后的值
------解决方案-------------------- 这个还真不太清楚,$("andonReason").value的值是多少? 使用了jQuery的选择器?
------解决方案--------------------很正常的
ajax是异步执行的
先执行andonStopReasonAction.validateCode()
不管有没有执行完
都会接着执行
alert("1---"+flag);
接着执行
alert("2--"+flag);
接着执行
return flag;
你可以参考我另外一个帖子的回答http://topic.csdn.net/u/20111008/14/5f9a5ab6-fe37-4102-b3d5-d8bfb5ad9a86.html