Javascript 如果单击“提交”按钮,则阻止执行beforeunload函数
我有以下功能,如果用户在填充Javascript 如果单击“提交”按钮,则阻止执行beforeunload函数,javascript,jquery,Javascript,Jquery,我有以下功能,如果用户在填充$('.article\u 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){ ret
$('.article\u 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.
}
如何将事件处理程序绑定到submit事件而不是submit按钮元素? 也许是这样:
var submitted = false;
$('form').on("submit", function() {
submitted = true;
console.log('submitted');
});
$(window).on('beforeunload', function(event) {
if(submitted){
submitted = false;
console.log('aborted because of submit');
return;
}
console.log('rest of code');
// Rest of your method.
});