$.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
。
答案 0 :(得分:1)
看到ajax调用将异步运行,test
的值只会在函数返回后更改。
要防止这种情况发生,请在ajax请求的选项中设置async: false
。
此处提出了类似的问题:https://stackoverflow.com/a/2982669/1705725
答案 1 :(得分:0)
.ajax()
以异步方式运行,您的值将立即返回。您可以在成功或错误处理程序中编写回调函数并更新变量。你可以设置async:false
,但它会阻塞,直到AJAX响应返回。