フォームの状態を監視するための興味深いプラグインを公開します。
「フォームの状態」とは何ですか? これは、初期化時にフォームに設定された値のキャストです。 プラグインには余分なものはなく、「好みとand食」はありません。それが開発されたもの、つまりフォームの値の変更を制御するものだけです。 これは何のためですか? たとえば、データに加えられた変更をログに記録するなど、あらゆる種類の状況があります。 ページを離れるイベントを制御しようとすることができます、突然、ユーザーが何かを入力しましたが、保存するのを忘れましたか?
誰も気にしないで 、 jsfiddleをいじることができます。
プラグイン自体は非常にシンプルです。 初期化:
$(document).ready(function() { $('form').state_form(); });
または詳細オプション:
$(document).ready(function() { $('form').state_form({ //name input in form inputName: 'changed_state', //is default //add input with changes in form insertInForm: 1, //is defaul //function before form submit //call if form has changes ifChanged: function() { //is default return true; }, //field for excluded exclude: ['field1', 'field2'] }); });
状態の変更を確認します。
$('form').state_form('is_changed');
変更されたフィールドを取得:
$('form').state_form('get_changes');
ハンドラーはフォーム送信イベントで停止します。ハンドラーはすべての変更を収集し、jsonでそれらをエンコードし、フォームにフィールドを作成して結果の文字列を挿入し、変更をサーバーに送信します。 この機能は無効にできます。
UPD:プラグインを0.0.3に更新し、状態履歴を操作するためのメソッドを追加しました。 RubaXaにあなたの提案と批判に感謝します!
ソースコードgithub.com/Slavenin/state_form
コメントや提案をお待ちしております!
ご清聴ありがとうございました!