0

我在表单页面上安装了以下 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消息?

4

2 回答 2

2

你有几个选择。

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

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

于 2012-09-29T19:43:20.977 回答
2

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

例如:

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

在您的 onbeforeunload 中,您可以执行以下操作:

window.onbeforeunload = function (evt) {
  if(window.nounloadcheck == true) return; // ignore
  ...
于 2012-09-29T19:44:21.660 回答