代码大致如下:使用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