我有一些javascript代码提醒用户,离开页面会丢失形成问题的答案。
window.onbeforeunload = askConfirm;
function askConfirm(){
return "Your answers will be lost.";
}
我想让所有事情都发生,但提交表格。
我的提交按钮的ID为#submit,我正在使用原型框架。
如下所示:如果单击$("submit")
,则跳过函数调用?
我仍然是JS / Prototype的新手,所以我不确定如何处理这个问题。
答案 0 :(得分:4)
我建议使用全局变量,因为如果用户没有对表单进行任何更改,您可能需要取消确认。就像在SO上,如果你开始输入答案并尝试离开,你会被提示确认,但是如果你没有开始输入,则不会提示你。
创建一个全局变量。在每个表单字段上,如果进行了更改,模糊事件可以设置变量。 askConfirm功能可以在提示之前检查变量。
答案 1 :(得分:2)
我会在按钮上添加一个onclick事件。该事件将全局变量设置为true(例如dont_confirm_now
)。如果该标志设置为true,则不返回任何内容。请记住,如果用户取消加载下一页,请立即重置变量。
答案 2 :(得分:1)
您可以在表单提交之前取消绑定事件:
document.getElementById('formId').onsubmit = function () {
window.onbeforeunload = null;
};