发送前的javascript ajax调用未执行

时间:2014-09-15 07:34:20

标签: javascript ajax

我有这个Javascript代码:

this.confirmBox = function(data) {
  $.jconfirm((function(_this) {
    return function() {
      var objConfig;
      objConfig = $.jconfirm("getConfig");
      alert("here");
      return true;
    };
  })(this));
  return false;
};

this.beforeSend = function(event, jqXHR) {
  if (this.confirmBox()) {
    return this.disableSubmit();
  } else {
    return jqXHR.abort();
  }
};

当我运行脚本时,我将登陆alert("here")return true以获取函数confirmBox。

然而问题是由于某种原因,ajax调用本身不再被触发。我如何调整beforeSend函数以检查checkBox结果是真还是假?

2 个答案:

答案 0 :(得分:1)

我认为在beforeSend中调用confirmBox方法总是返回false,因为$ .msgbox不像window.confirm方法那样阻止线程执行。当你得到结果时,你可能需要调用ajax调用==="确认"来自留言箱。

$.msgbox("confirm", {
    type: "confirm",
    buttons: [
        { type: "cancel", value: "Cancel" }, 
        { type: "submit", value: "Confirm" }
    ]}, function(result) {
        if (result === "Confirm") {
            // $.ajax(..)
        }
    }
};

答案 1 :(得分:1)

您必须在按钮上添加事件 请参阅this小提琴示例

buttons: {
        "Yes": function () {
            $(this).dialog('close');
            callback(true);
        },
            "No": function () {
            $(this).dialog('close');
            callback(false);
        }
    }