我已经使用window.beforeunload函数禁用了页面重定向/重新加载,但是一旦页面中的表单提交发生,我想重定向到下一页,而不显示window.beforeunload警报。我怎么能这样做?
$(window).on("beforeunload", function () {
return "Changes won't be saved.";
});
这是不应该触发警报的按钮:
<form id="command" action="/some-uri" method="post">
<button type="submit" value="NEXT" class="btn btn-red- light">NEXT</button>
</form>
答案 0 :(得分:1)
检查变量
伪代码
if some dirty change -> window.hasSomeDirtyChanges = true;
if all dirty changes saved -> window.hasSomeDirtyChanges = false;
$(window).on("beforeunload", function () {
if(!window.hasSomeDirtyChanges) return true;
return "Changes won't be saved.";
});
所以这样你每次去页面时都不必绑定unbind。这适用于所有页面,您只需要管理变量。
答案 1 :(得分:0)
为您不想触发事件的每个元素添加一个类,例如&#34; .not-trigger&#34;,然后:
$(".not-trigger").on("click", function(){
$(window).off("beforeonunload");
});