退出表单时确认的Javascript消息

时间:2009-12-08 14:41:17

标签: javascript prototypejs

我有一些javascript代码提醒用户,离开页面会丢失形成问题的答案。

window.onbeforeunload = askConfirm;
function askConfirm(){
        return "Your answers will be lost.";
}

我想让所有事情都发生,但提交表格。

我的提交按钮的ID为#submit,我正在使用原型框架。

如下所示:如果单击$("submit"),则跳过函数调用?

我仍然是JS / Prototype的新手,所以我不确定如何处理这个问题。

3 个答案:

答案 0 :(得分:4)

我建议使用全局变量,因为如果用户没有对表单进行任何更改,您可能需要取消确认。就像在SO上,如果你开始输入答案并尝试离开,你会被提示确认,但是如果你没有开始输入,则不会提示你。

创建一个全局变量。在每个表单字段上,如果进行了更改,模糊事件可以设置变量。 askConfirm功能可以在提示之前检查变量。

答案 1 :(得分:2)

我会在按钮上添加一个onclick事件。该事件将全局变量设置为true(例如dont_confirm_now)。如果该标志设置为true,则不返回任何内容。请记住,如果用户取消加载下一页,请立即重置变量。

答案 2 :(得分:1)

您可以在表单提交之前取消绑定事件:

document.getElementById('formId').onsubmit = function () {
  window.onbeforeunload = null;
};