我具有以下功能,当填充$('.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')
。
答案 0 :(得分:3)
您可以创建一个布尔值,该布尔值在您单击“提交”时将为正,或者在单击时删除卸载事件。代码如下:
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.
}
答案 1 :(得分:0)
如何将事件处理程序绑定到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.
});