jquery - ajax同步异步问题

//验证供应商
                        $("#providerid").attr("value","");// 清空
                        $.ajax({
                            url :'${path}/product/findbyproviderId',
                            async:false,  // 同步
                            type : 'post',
                            data :{qc_provider_name : $("#qc_provider_name").val()},
                            dataType : 'text',
                            success:function(result){
                                $("#providerid").val(result);
                            }
                        });
                        
                        if($("#providerid").val() == ""){
                            alert("供应商不存在");
                            return false;
                        }

上段代码是js中的一部分,之前是ajax的async:false没加上,不加上的话,程序ajax默认是异步的,就是说两段代码互不影响,然后总是弹出对话框,供应商不存在,我说怪了,在success属性里,弹出result的值,是有值的,然后设置一个javascript变量接受result的值,在里面有值,在外面不行,弄一个隐藏的input接受值同样是里面执行时有值,外面没值,最后查了查,没加上同步标识。

ajax默认都是异步的,即上面的代码在执行的时候,下面的代码也在同时执行,上面得到的result的代码还在执行的同时,下面弹出由result赋值的变量的代码也在执行,那当然是空的,加上同步的标识后,即代码按照先后顺序执行,就ok了。之前,一直是那样用的,没想过同步异步的问题。小记一下

posted on 2012-11-25 15:40  lovebeauty  阅读(280)  评论(0编辑  收藏  举报

导航