点击提交时不要显示onbeforeunload警报

时间:2012-03-01 00:40:01

标签: javascript onbeforeunload

当访问者点击“取消”或尝试返回填充的文本字段时,我有以下功能来显示警报。该功能整体运作完美但不是我点击提交时。当我按下按钮时,警报会显示,我不希望这样。

var changed_flag = 0;

$('input').change(function() {
    changed_flag = 1;
});

window.onbeforeunload = function() {
    if(changed_flag) {
        return 'You haven't saved your work!'
    }
};

我知道我应该编辑$('input').change(...并添加input[type="submit"],但我不知道如何以及在何处。有谁知道如何解决这个问题?

提前致谢。

3 个答案:

答案 0 :(得分:2)

尝试

$('form').submit(function() {
    changed_flag = 0;
});

答案 1 :(得分:0)

$('form').submit(function() {
    $(window).unbind('beforeunload');
});

另外,您可以执行changed_flag = 0

而不是取消绑定

答案 2 :(得分:0)

只需让您的提交按钮删除该事件或将changed_flag设置回0。

<input type="submit" onmousedown="changed_flag = 0" />

编辑:第二个想法是将此代码放在你的onsubmit处理程序中,以防表单以其他方式提交(例如按Enter或通过其他函数)。