2011-07-27 3 views
2

私はフォームを完成するための複数のステップを持つページを持っています。各ステップで、異なる部分ビューがロードされます。 1つのステップはテキストボックスです。彼らは後で戻って編集することができます。そして、自分のやったことを保存せずに別のステップに行くときに保存するかどうかを尋ねるウィンドウをポップアップしたいのですが、テキストボックスに。 JavaScriptや何かを使ってこれを行う簡単な方法はありますか?asp.netページでテキストエリアが編集されているかどうか確認するにはどうすればよいですか?

答えて

1

0に設定されたページでカウンタ変数を保持することができます。次に、onchangeイベントをテキストボックスに添付します。 onchangeイベントが発生するたびにカウンタ変数がインクリメントされます。ユーザが別のページにナビゲートするときに、カウンタ変数が0であるかどうかをチェックする.0であればテキストボックスは編集されていない。そうでなければユーザはテキストボックスを編集した。


ページロード(window.onload)のより良いアプローチ あなたは、変数に監視したいテキストボックスのテキスト(textbox.value)を格納します。ユーザーが他のページに移動すると、テキストボックスの現在のテキストが変数のテキストと一致するかどうかを確認すると、のテキストボックスの値は変更されません(複数回編集されている可能性があります)
2つの余分なjavascriptはページロード時に1つを呼び出し、ユーザーがページナビゲーションを試みるときにもう1つを呼び出します。以前のアプローチでは テキストボックスのテキストはjavascriptの呼び出し(のonchangeイベントとカウンタ変数をincremnting)がある変更するたび

0

を使用すると、値は、ページがロードされたときからの変更を持っているかどうかを確認したい場合は、 はdefaultValueに現在の値を比較することができます。

if (textArea.defaultValue != textArea.value) { 

    // It's been edited 

} 
0

dirtyFieldプラグインを試してみてください。 Hereは、drityFieldを使用したいくつかの例です。