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. アンロード前の関数でチェックしてそれに応じて動作することを投稿するときに、グローバルフラグを設定できます。

  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 に答える