Javascript &引用;“确认导航”;警报箱

Javascript &引用;“确认导航”;警报箱,javascript,alert,confirm,Javascript,Alert,Confirm,我正在寻找一个函数,当访问者试图离开页面时,当他或她还没有完成表单时,它会显示一个alertbox。我已经导入了一个图像来显示我的意思。翻译:title=“确认导航”,content=“你想离开这个页面吗?”,button1=“离开这个页面”,button2=“留在这个页面” 当你想返回一个页面时,Facebook会使用这个alertbox,例如,当你没有完成一个PM给某人的时候 我怎样才能完成这样的事情 提前感谢。将窗口.onbeforeunload与更改表单字段时设置的标志结合使用 例如:

我正在寻找一个函数,当访问者试图离开页面时,当他或她还没有完成表单时,它会显示一个alertbox。我已经导入了一个图像来显示我的意思。翻译:title=“确认导航”,content=“你想离开这个页面吗?”,button1=“离开这个页面”,button2=“留在这个页面”

当你想返回一个页面时,Facebook会使用这个alertbox,例如,当你没有完成一个PM给某人的时候

我怎样才能完成这样的事情


提前感谢。

窗口.onbeforeunload
与更改表单字段时设置的标志结合使用

例如:

var changed_flag = 0; // change in an onchange event or whatever, something like the below

document.getElementById('form_field').onchange = function() {
  changed_flag = 1;
};

window.onbeforeunload = function() {
  if ( changed_flag ) {
    return 'You have unsubmitted changes.'
  }
};

window.onbeforeuload
与更改表单字段时设置的标志结合使用

例如:

var changed_flag = 0; // change in an onchange event or whatever, something like the below

document.getElementById('form_field').onchange = function() {
  changed_flag = 1;
};

window.onbeforeunload = function() {
  if ( changed_flag ) {
    return 'You have unsubmitted changes.'
  }
};

谢谢,但当我尝试您的解决方案时,什么也没有发生:/I在每个页面上都包含的文件中的脚本标记内的代码。您是否使用onchange处理程序进行了尝试?我已经测试了您的编辑,但仍然存在相同的问题:/n页面上的表单具有id=“form\u field”如果您在JSFIDLE上发布一个示例,我将看一看。有几种方法可以做到这一点,其中之一是以通用方式绑定到所有输入。使用jQuery进行速记:
$('input').change(function(){changed\u flag=1})
。然后,您可以在每页的脚本标记中包含此函数和
onbeforeuload
函数,它应该可以工作。注意:您可能希望先使用fancier并序列化表单,以便以后可以比较更改的值。如果有人更改了某些内容,然后又将其更改回以前的状态,这将阻止onbeforeunload消息。谢谢,但在尝试您的解决方案时不会发生任何情况:/I在每个页面上都包含一个文件中的脚本标记内的代码。您是否使用onchange处理程序进行了尝试?我已经测试了您的编辑,但仍然没有更改问题:/页面上的表单有id=“form\u field”,如果您在JSFIDLE上发布一个示例,我将看一看。有几种方法可以做到这一点,其中之一是一般地绑定到所有输入。使用jQuery进行速记:
$('input').change(function(){changed\u flag=1})
。然后,您可以在每页的脚本标记中包含此函数和
onbeforeuload
函数,它应该可以工作。注意:您可能希望先使用fancier并序列化表单,以便以后可以比较更改的值。如果有人更改了某些内容,然后又将其更改回原来的状态,这将阻止onbeforeunload消息。