以下功能始终会提醒undefined
。代码执行在ajax请求完成之前完成。请帮助。
function validateUser() {
var user = document.getElementById("user").value
var isuserValid = isvalidUser(user);
alert("returned Result:" + isuserValid); // it always prints undefined,ajax request not completed.How can i wait for ajax request to complete
if (isuserValid) {
alert("user Account found);
} else {
alert("Invalid user");
}
}
function isValidUser(user) {
$.ajax({
url: 'validateUser.jsp'
type: 'GET',
dataType: 'html'
data: {
userName: user
},
success: function(data) {
if (data.trim() = "true")
return true;
} else {
return false;
}
});
}
//it always alerting undefined
答案 0 :(得分:0)
将警报放入AJAX请求的成功回调中。这只会在AJAX请求完成后运行警报。
答案 1 :(得分:0)
如果您想要同步AJAX,则需要在请求中设置async: false
;默认为true
。
function isValidUser(user) {
$.ajax({
url: 'validateUser.jsp'
type: 'GET',
async: false,
dataType: 'html'
data: {
userName: user
},
success: function(data) {
if (data.trim() = "true")
return true;
} else {
return false;
}
});
}
请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作。