javascript关闭问题

时间:2014-09-08 15:09:26

标签: javascript jquery ajax

EDITED 我已经把答案建议重复了,但是我又问了一个级别。我根据之前学习的内容创建了答案,重复的答案将我带到了我的问题。

我有这个功能正常工作

function validateLimit(dia, hora, cel, vit, kg) {
  var params = 'cel='+cel;
    params += '&viti='+viti;
    params += '&dia='+data[2]+"-"+data[1]+"-"+data[0];
    params += '&hora='+hora;
    params += '&kg='+kg;

  function testAjax(handleData) {
    $.ajax({
      type: "POST",
      url: "recheck-limit.php",
      data: params,
      datatype: "json",
      success: function(d) {
        handleData(d);
      }
    });
  }

  testAjax(function(output) {
    var data = JSON.parse(output);
    if(data.disponible == true) {
      return "1234";
    } else {
      return "4321";
    }
  });
  return "aser";
}

我从外面打电话给那个

hay_dispo = validateLimit(dia, hora, cel, viti, kg);

但我不知道如何获得价值" 1234"或" 4321"从textAjax函数中,我可以返回" aser",但是根据data.disponible的值不能得到我需要的值。 谢谢

1 个答案:

答案 0 :(得分:0)

我错过了什么,或者它会像那样工作,我只是添加了一个回调

  function validateLimit(dia, hora, cel, vit, kg, callback) {
    var params = 'cel='+cel;
      params += '&viti='+viti;
      params += '&dia='+data[2]+"-"+data[1]+"-"+data[0];
      params += '&hora='+hora;
      params += '&kg='+kg;

    function testAjax(handleData) {
      $.ajax({
        type: "POST",
        url: "recheck-limit.php",
        data: params,
        datatype: "json",
        success: function(d) {
          handleData(d);
        }
      });
    }

    testAjax(function(output) {
      var data = JSON.parse(output);
      if(data.disponible == true) {
        callback("1234");
      } else {
        callback("4321");
      }
    });
    return "aser";
  }

  validateLimit(dia, hora, cel, viti, kg, function(val){
    hay_dispo = val; 
    // ...continue
  });