为一个按钮禁用窗口beforeunload属性

时间:2017-03-24 06:06:22

标签: javascript jquery html

我已经使用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>

2 个答案:

答案 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");
});