我只是想调用一个函数并得到一个真/假,并根据它设置一个启用/禁用的按钮..但它在函数完成之前跳过函数!我是一个C#家伙,所以我有一种感觉,我试图用javascript中的c#方式做事情并且它不正确
if (IsTasksExists()) {
$("#divValidateUnprocessData").button("enable");
}
else {
$("#divValidateUnprocessData").button("disable");
}
});
function IsTasksExists() {
$.ajax(
{
type: 'POST',
url: 'http://localhost:7000/ManualProcess/CheckTasksToValidateAJAX',
success: function (response) {
if (response.Status == 'OK') {
if (response.TasksToValidate == 0) {
// $("#divValidateUnprocessData").button("disable");
return false;
}
else {
return true;
}
}
else {
alert('error');
}
}
});
}
答案 0 :(得分:1)
这是正确等待回调的模式:
IsTaskExists(function(exists){
if (exists) {
$("#divValidateUnprocessData").button("enable");
} else {
$("#divValidateUnprocessData").button("disable");
}
});
function IsTasksExists(callback) {
$.ajax( {
type: 'POST',
url: 'http://localhost:7000/ManualProcess/CheckTasksToValidateAJAX',
success: function (response) {
if (response.Status == 'OK') {
if (response.TasksToValidate == 0) {
callback(false);
} else {
callback(true);
}
} else {
alert('error');
callback(false);
}
}
});
};