如何使用jQuery检索onSubmit事件

How to retrieve onSubmit event using jQuery?

本文关键字:onSubmit 事件 检索 jQuery 何使用      更新时间:2023-09-26

问题是当我使用window.onbeforeunload时。当我单击提交按钮时,会显示弹出窗口。但我只需要在完成后退按钮或刷新时才需要。为此,我认为我们的活动是正确的。所以每当unload调用时,我只想测试事件是否来自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.";
}

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

/* 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;
};