如何使用jQuery检索onSubmit事件?

时间:2016-03-22 08:55:53

标签: javascript jquery

问题是当我使用window.onbeforeunload时。当我点击提交按钮时,弹出窗口显示。但我只需要在后退按钮或刷新完成时。我认为我们得到了正确的事件。因此,每当卸载调用时,我只想测试事件是否来自onsubmit。如果是,我们不会给出弹出窗口。所以为此,我需要知道如何检测提交事件。

window.onbeforeunload = function(e) {
    if ($('.formFields').find('tr.item').length || $('.formFields').find('tr.section').length) {
        var dis = discardWarning();
        return dis;
    } else {
        return;
    }

};

var discardWarning = function() {
    return "Your current work will be discarded.";
}

1 个答案:

答案 0 :(得分:1)

您可以在提交表单并捕获响应时设置标志变量。

/* default */
window.leavingAfterSubmission = false;

$('#your-form').on('submit', function(e) {
  window.leavingAfterSubmission = true;
});

然后,您可以在onbeforeunload事件处理程序上检查此标记。

window.onbeforeunload = function() {
  if ( !window.leavingAfterSubmission ) {
    // flag is false, meaning the user is leaving by refresh or back button
    return discardWarning();
  }

  // flag is true, meaning the user is leaving by form submission
  // empty return to prevent the dialog
  return;
};