用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2780|回复: 3
收起左侧

[HELP] 莫名其妙!javascript函数运行时值返回异常

[复制链接]
发表于 2011-12-29 13:06:06 | 显示全部楼层 |阅读模式
本帖最后由 haimi 于 2011-12-29 13:14 编辑

恳请大家指点!代码如下:
JS复制代码
 
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[i].web_id+'\">'+data[i].web_title+'</option>';
               }
            }
         }//endsuccess
      }); //endajax
return weboption;(断点1
}
 
复制代码



现在的情况是:jquery1.44和1.64都尝试了
1、其他函数调用此函数时ajax返回值完全正常

2、但得到的weboption值是定义的初始化值
3、如用firebug调试时在断点1处设置断点,程序运行至断点再点击继续,则weboption为正确值!
本人对此百思不得其解!
请大家帮忙分析,谢谢!!!




发表于 2011-12-29 13:23:39 | 显示全部楼层
ajax是异步的,所以他会整个都执行掉,然后有ajax请求的再去发请求,所以直接就返回了初始值,你断点的话,ajax的就在这段时间执行了。所以你的return要放在success里完成处理以后就return。
发表于 2011-12-29 13:25:20 | 显示全部楼层
但如果你还就想要这样写的话,在ajax里加个属性
async: false
 楼主| 发表于 2011-12-29 14:28:09 | 显示全部楼层
感谢楼上,确实如此

本版积分规则