Jquery Ajax布尔变量运行不正常

时间:2013-06-20 10:30:36

标签: javascript jquery ajax

 $.validator.addMethod("checkUsername", 
   function(value, element){
    var test;     //we want to use this test is like boolean variable
    $.ajax({
        type:"GET",            
        data: 'name='+ value,
        url: "master/ValidationDepartment.jsp",
        success: function(response){  
               test = true;   //assign this value is true                
        },
        error: function() {
               test = false;  //assign this value is false 
    }
    });
         //alert(test);     // bt now this time test value is undifined
    return test;
  }, 
"Departmentname Already Exists."
);
});

我也试过var test = true。 如果我们在每次值为真时声明test = true

2 个答案:

答案 0 :(得分:1)

看到ajax调用将异步运行,test的值只会在函数返回后更改。 要防止这种情况发生,请在ajax请求的选项中设置async: false

此处提出了类似的问题:https://stackoverflow.com/a/2982669/1705725

答案 1 :(得分:0)

.ajax()以异步方式运行,您的值将立即返回。您可以在成功或错误处理程序中编写回调函数并更新变量。你可以设置async:false,但它会阻塞,直到AJAX响应返回。