我有一个功能,我只是添加到一个大型表格供内部使用,该功能会询问你是否打算离开。
这很有效,但在按下" save"时也会提示警告。因为这会带你到另一个页面...所以,我添加了一个var并测试该vars值,我想如果单击提交我可以更改值。我认为下面的代码可行,但唉不行。任何关于为什么这不起作用的想法,还有一种方法可以阻止onbeforeunload从触发IF提交点击?
var trigger=1;
document.getElementById("edit-submit").onclick = function(){
var trigger=2;
};
window.onbeforeunload = function (e) {
if (trigger==1){
var message = "You are editing your P3 - Are you sure you want to exit?",
e = e || window.event;
// For IE and Firefox
if (e) {
e.returnValue = message;
}
}
我在onclick函数中放了一个console.log,然后显示,所以我知道onclick正在工作,它只是没有设置trigger = 2 ..我不确定这是不是因为:
A)var超出了卸载功能的范围 - 我对范围还不是很好。
B)unload事件总是在var发生变化之前发生。
我已经在google上找到了帮助我的任何内容,但没有发现任何有用的内容。
答案 0 :(得分:2)
这将创建一个新变量,该变量是onclick
处理程序的本地变量:
document.getElementById("edit-submit").onclick = function(){
var trigger=2;
};
要影响全局变量,请删除var
:
document.getElementById("edit-submit").onclick = function(){
trigger=2;
};
答案 1 :(得分:2)
我会点击按钮删除事件处理程序。
document.getElementById("edit-submit").onclick = function(){
window.onbeforeunload = null;
};
此外,如果没有设置输入更改事件,我只会设置处理程序....但这只是我:)