我有以下函数,当填充$('.article_div textarea')表单字段时,如果用户正在退出页面,则会向用户发出警告。

$(window).on('beforeunload', function(event) {
    var unsaved = "Are you sure you want to exit?";
    var text = $('.article_div textarea').val();
    if (text.length > 0){
        return unsaved;
    }
});


但是,当他们单击提交按钮到实际表单时,我想阻止执行此弹出窗口。

我如何修改功能以解决此问题?提交按钮的元素是

$('button.submit_post')

最佳答案

您可以创建一个布尔值,该布尔值在您单击“提交”时将为正,或者在单击时删除卸载事件。代码如下:

var isSubmitClicked = false;
$('button .submit_post').on("click",onClick);
function onClick(e){
   isSubmitClicked = true;
}
$(window).on('beforeunload', function(event) {
   if(isSubmitClicked){
     isSubmitClicked = false;
     return;
   }
   // Rest of your method.
}

10-08 04:29