如何区分JS-submit和使用后退按钮(onbeforeunload)?

时间:2011-07-06 23:07:14

标签: javascript forms form-submit onsubmit

我对onbeforeunload和form.submit()感到很疯狂。你是我最后的希望......

我所拥有的是一张表格。如果用户单击后退按钮,则会导致很多麻烦,因此window.onbeforeunload会显示警告。因此,应该允许提交表单,因此form.onsubmit设置一个全局变量来告诉onbeforeunload-function要关闭。到目前为止还好。

有时表单必须通过JS自动提交。我无法访问调用form.submit()的函数 - 或者更确切地说 - 用户将创建一些可能包含form.submit()的简单代码。

关键是form.submit()根据规范不会触发表单的onsubmit事件。因此,尝试通过form.submit()定期发送表单会让我考虑关闭页面。

所以回到我的希望:有没有人有一个如何解决这个恶性循环的好主意?

非常感谢 BurninLeo

1 个答案:

答案 0 :(得分:2)

var form = document.getElementById('the-form'),
     sub = form.submit;

form.submit = function(){
    alert('caught submit');
    sub.apply(form);
}

form.submit();