莫名其妙!javascript函数运行时值返回异常
本帖最后由 haimi 于 2011-12-29 13:14 编辑恳请大家指点!代码如下:
function geteachweb(ter_id,whom){
var kc_id=$("#kc_id").val();
var weboption="<option value=\"0\">请选择</option>";(初始化值)
$.ajax({
type: "POST",
url: "/index.php/adc_teach/geteachweb",
data:{
"ter_id":ter_id,
"kc_id":kc_id,
"whom":whom
},
dataType: "json",
success: function(data){
if (data!=false){
for(i=0;i<data.length;i++){
weboption+='<option value=\"'+data.web_id+'\">'+data.web_title+'</option>';
}
}
}//endsuccess
}); //endajax
return weboption;(断点1)
}
现在的情况是:jquery1.44和1.64都尝试了
1、其他函数调用此函数时ajax返回值完全正常
2、但得到的weboption值是定义的初始化值
3、如用firebug调试时在断点1处设置断点,程序运行至断点再点击继续,则weboption为正确值!
本人对此百思不得其解!
请大家帮忙分析,谢谢!!!
ajax是异步的,所以他会整个都执行掉,然后有ajax请求的再去发请求,所以直接就返回了初始值,你断点的话,ajax的就在这段时间执行了。所以你的return要放在success里完成处理以后就return。 但如果你还就想要这样写的话,在ajax里加个属性
async: false 感谢楼上,确实如此
页:
[1]