410133062 发表于 2013-1-29 11:56:14

jquery同步ajax提交

最近做ajax验证验证码代码如下
 
function checkSMSCode(){
             。
             。
             。
        var result = false;
        $.ajax({
               type: "get",
               dataType:"json",
               url: "<%=contextPath%>/checkSMSCode",
               data:'mobileNum=' + mobileNum + "&SMSCode=" + smscode + "&timestamp=" + new Date().getTime(),
               success: function(ret){
                   if(ret==retSuc){
                           result = true;
                       }else{
                           smsCodeObj.className = "errorKey";
                           $("#SMSCodeHelp").text(ret);
                           result = false;
                       }
                },
                error: function(){
                    $("#SMSCodeHelp").text('系统繁忙,请稍后再提交');
                }
            });
       
        return result;
    }
 
发现无论怎么验证,返回的总是false
检查后得知 jquery $.ajax()提交默认是异步的,就是执行到这之后,不等待执行完成,立刻执行下边的代码,所以就有了上面的情况
 
解决方法:
在方法里加上参数
async: false,//使用同步方式
这样就同步方式了。
 
页: [1]
查看完整版本: jquery同步ajax提交