当前位置: 代码迷 >> Java相关 >> 求高手解决JS回调疑问,该如何解决
  详细解决方案

求高手解决JS回调疑问,该如何解决

热度:8169   发布时间:2013-02-25 21:50:07.0
求高手解决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
  相关解决方案