我想知道如何处理我遇到的问题。我有一个表单,提交检查数据库中是否已存在条目(禁止双重名称)。通话本身运作正常。 这是使用$ .ajax的函数:
function checkActionName(action_name) {
$.ajax({
type: "POST",
url: "ajax/action_checks.php",
data: {
action_task: "checkActionName",
action_name: action_name
},
dataType: "text",
timeout: 6000,
success: function (response) {
if (response == 0){
return 0;
}
else if (response == 1) {
return 1;
}
else {
return 2;
}
},
error: function(){
return 2;
}
});
}
稍后在我的代码中,我将此函数称为:
$('#button').click(function(){
var action_name = "test";
var check = checkActionName(action_name);
alert(check);
});
问题是由于AJAX调用是异步运行的,因此检查将是未定义的。由于async:false已弃用,处理此情况的最佳/最符合方式(截至2016年8月)是什么,以便alert(check)将为checkActionName提供返回值?
是$ .when?我有点挣扎,这样的问题的大多数答案建议async:false,我不想使用它。