ホームページ > ウェブフロントエンド > jsチュートリアル > ユーザーがページを離れるときに保存されていないフォーム データが失われるのを防ぐにはどうすればよいですか?

ユーザーがページを離れるときに保存されていないフォーム データが失われるのを防ぐにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-25 03:57:13
オリジナル
954 人が閲覧しました

How Can I Prevent Users from Losing Unsaved Form Data When Leaving a Page?

ページ放棄時の保存されていない変更の防止

ユーザーがフォーム データを保存していないページから移動するとき、ユーザーにフォーム データの確認を求めるメッセージを表示することが重要です。自分の仕事を失わないようにしたいという意図。これを実装するには:

短いが限定的なアプローチ:

window.addEventListener("beforeunload", function (e) {
  e.returnValue = "Warning: Unsaved changes. Are you sure you want to leave?";
});
ログイン後にコピー

ただし、このアプローチでは、フォーム データが送信された場合でも確認メッセージがトリガーされるため、回避策が必要です。

ダーティによる包括的なソリューションフラグ:

無関係なページの葉に確認メッセージが表示されないようにするには、フォーム データがいつ変更されたかを示す「ダーティ」フラグを使用します。

const isDirty = () => false;

window.addEventListener("beforeunload", function (e) {
  if (formSubmitting || !isDirty()) {
    return;
  }

  e.returnValue = "Warning: Unsaved changes. Are you sure you want to leave?";
});
ログイン後にコピー

isDirty を実装します。使用するメソッド:

  • イベントベースのアプローチ: ユーザーの監視
  • jQuery Dirty Plugin: フォームの変更を検出し、カスタム メッセージでページが終了するのを防ぐための便利なライブラリです。
  • >

警告: 制限付きブラウザサポート

カスタム確認メッセージは、Chrome 51 以降などの一部のブラウザではサポートされなくなったことに注意してください。代わりに、「退出」ボタンと「滞在」ボタンを備えた一般的なダイアログを表示することもできます。

以上がユーザーがページを離れるときに保存されていないフォーム データが失われるのを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート