1. ホーム
  2. javascript

[解決済み] 未保存の変更を検出する

2023-01-13 09:34:51

質問

ASP .Net アプリケーションで、quot; Unsaved Changes" プロンプトを実装する要件があります。 ユーザーが Web フォームのコントロールを変更し、保存する前に移動しようとすると、未保存の変更があることを警告するプロンプトが表示され、キャンセルして現在のページにとどまるオプションを提供する必要があります。 ユーザーがどのコントロールにも触れていない場合は、プロンプトは表示されません。

理想的には、これを JavaScript で実装したいのですが、私自身のコードをロールダウンする前に、これを達成するための既存のフレームワークまたは推奨されるデザイン パターンはありますか? 理想的には、最小限の変更で複数のページにわたって簡単に再利用できるものを希望します。

どのように解決するのですか?

jQueryを使用する。

var _isDirty = false;
$("input[type='text']").change(function(){
  _isDirty = true;
});
// replicate for other input types and selects

と組み合わせる onunload / onbeforeunload といったメソッドを必要に応じて使用します。

コメントから、以下はコードを重複させることなく、すべての入力フィールドを参照します。

$(':input').change(function () {

使用方法 $(":input") は、すべてのinput、textarea、select、button要素を指します。