0

我只想调用一个函数并获得一个真/假,并根据该设置一个按钮启用/禁用..但它会在函数完成之前跳过该函数!!我是一个 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');
           }
       }
   });
}
4

1 回答 1

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);
      }
    }
  });
};
于 2013-06-21T17:20:21.680 回答