[解決済み] html フォームが編集されたかどうかを検出する一般的な方法
2022-11-21 17:24:59
質問
タブ付きのHTMLフォームがあります。あるタブから別のタブに移動すると、データに変更がない場合でも、現在のタブのデータが (DB 上で) 永続化されます。
私は、フォームが編集された場合にのみ、永続化の呼び出しを行いたいと考えています。フォームにはどのような種類のコントロールでも含めることができます。フォームを汚すことは、テキストを入力することである必要はなく、カレンダー コントロールで日付を選択することも適格であるでしょう。
これを達成する1つの方法は、デフォルトで読み取り専用モードでフォームを表示し、「編集」ボタンを持ち、ユーザーが編集ボタンをクリックすると、DBへの呼び出しが行われます (もう一度、データが変更されたかどうかに関係なく。)。これは、現在存在するものよりも良い改善です)。
私は、コントロールの値が変更されたかどうかをチェックする一般的なjavascript関数を記述する方法を知りたいのですが?
どのように解決するのですか?
純粋なjavascriptでは、これは簡単な作業ではありませんが、jQueryでは非常に簡単に行うことができます。
$("#myform :input").change(function() {
$("#myform").data("changed",true);
});
そして保存する前に、変更されたかどうかを確認することができます。
if ($("#myform").data("changed")) {
// submit the form
}
上記の例では、フォームは "myform" と等しい ID を持っています。
もし多くのフォームでこれが必要なら、簡単にプラグインにすることができます。
$.fn.extend({
trackChanges: function() {
$(":input",this).change(function() {
$(this.form).data("changed", true);
});
}
,
isChanged: function() {
return this.data("changed");
}
});
とすればいいだけです。
$("#myform").trackChanges();
で、フォームが変更されたかどうかをチェックします。
if ($("#myform").isChanged()) {
// ...
}
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] HTML 5: Is it <br>, <br/>, or <br />?
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] モバイル端末の検出にはどのような方法がありますか?
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。