2

ASP.NET フォームがあり、ユーザー入力、テキスト ボックス、チェックボックスなどが多数あります。ユーザーがフォームを保存せずに編集したかどうかを確認し、編集した場合はアンロードする前にプロンプ​​トを表示できるようにする必要があります。

ユーザーがテキスト ボックスの 1 つを編集すると設定されるダーティ フラグがあります。彼らがフォームにデータを保存したら、フラグをリセットします。したがって、フラグは、ユーザーが編集したが保存していない場合にのみ設定する必要があります。

次に、このフラグを使用して、ユーザーに「このページを離れてもよろしいですか?」と表示するかどうかを決定します。</p>

コードスニペット:

var _isDirty = false;

    $(function () {
        try {
                $("#MainContent_txtSometextBox").change(function () {
                    _isDirty = true;
                });
            } catch (e) { }
        });

問題は、すべてのコントロールでこれを設定する必要がないことです。ページレベルで設定することはできますか? ページにはカスタム ユーザー コントロールもあるため、それほど簡単ではないと思います。

4

2 に答える 2

6

別のセレクターを渡すことができます

$("input, select, textarea").change(function () {
    _isDirty = true;
});

必要に応じてこれを拡張できます。

制限する必要がある場合は、 で囲みdiv、次にfind.

$("#myForm").find("input, select, textarea").change(function () {
    _isDirty = true;
});
于 2012-06-07T15:40:39.077 に答える
0

jquery の入力セレクターを使用して、すべての入力、テキストエリア、選択、およびボタン要素をターゲットにすることができます。ボタンの場合はクリック イベントが必要で、テキスト ボックスとエリアの場合は、フォーカスが失われるとダーティ フラグがトリガーされます。

デモ

$('#body :input'​​​​​​​​).change(function () {
    _isDirty = true;
});
于 2012-06-07T16:03:09.003 に答える