当用户点击提交按钮时,如何在退出时阻止javascript警报

时间:2012-09-29 19:41:08

标签: php javascript alert

我在表单页面上安装了以下js代码,以便在用户填写表单时尝试离开页面时提醒用户:

<script type="text/javascript">
  window.onbeforeunload = function (evt) {
  var message = 'Data you entered may not be saved';
  if (typeof evt == 'undefined') {
  evt = window.event;
  }
  if (evt) {
  evt.returnValue = message;
  }
  return message;
  }
</script>

当用户点击其他链接或标签以尝试离开页面时,它可以正常工作。但即使用户点击提交按钮以提交表单中的更改,也会弹出javascript消息。

如何在提交表单时阻止此js消息弹出?

2 个答案:

答案 0 :(得分:2)

你有几个选择。

  1. 发布时,可以设置全局标志,并在beforeunload函数中进行检查,并采取相应措施。

  2. 您可以在发布时删除beforeunload函数,方法是将其设置为空函数或不提示的函数。

答案 1 :(得分:2)

在表单的onsubmit上,设置一个标志,告诉onbeforeunload它可以忽略此卸载尝试。

例如:

<form ... onsubmit="window.nounloadcheck = true; return true;">

在你的onbeforeunload中,你可以这样做:

window.onbeforeunload = function (evt) {
  if(window.nounloadcheck == true) return; // ignore
  ...