3

私はこれを使用しています: https://github.com/snikch/jquery.dirtyforms$('form').dirtyForms();からフォームが汚れているかどうかを確認します。ただし、私のページには、単にフィルタリングに使用されるドロップダウンがいくつかあります(フォームを「ダーティ」にするべきではありません)。現在、これらのドロップダウンのいずれかを選択すると、フォームが汚れます。jquery.dirtyforms を使用して (ドキュメントを読みましたが、方法がわかりません)、クラス名を使用してセレクター (ドロップダウン、テキストボックスなど) を除外し、フォームがダーティーとしてマークされないようにする方法を教えてください。

これらのドロップダウン/フィルターを呼び出すクラスを割り当てるなど、さまざまなことを試しignoreDirtyました。その後、jqueryでこれを行いました。

$('form').dirtyForms().ignoreClass('ignoreDirty');

これによりエラーが発生するため、何か間違ったことをしているに違いありません。プロパティを介して設定しようとしたことにも注意してください:

$('form').dirtyForms({ ignoreClass : "ignoreDirty" });

ignoreDirty ただし、これにより、クラス名が「これらのフィルターがポストバックを引き起こすことに注意してください」であるコントロールのフォームは依然としてダーティになりますが、フォームに移動して単一の変更を加えていないとしましょう。これらのフィルターをクリックし始めると、投稿された瞬間に次のことが起こります。

ここに画像の説明を入力

4

2 に答える 2

2

プラグインコードは私にはほとんど意味がありません:Dしかし、選択ボックスを無視してすぐに機能させるにはonSelectionChange、次のよう に置き換えることができます

オリジナル機能

var onSelectionChange = function() {
    $(this).dirtyForms('setDirty');
}

新しいバージョン

var onSelectionChange = function () {

   //this is the new line. self explanatory
   if ($(this).hasClass($.DirtyForms.ignoreClass)) return;


   $(this).dirtyForms('setDirty');
}

この後、適切な修正については元の開発者に頼る必要があります。コメントにスペースがあったため、これを回答として投稿しました

于 2014-05-15T14:17:14.347 に答える
0

ここには2つの異なる問題があるようです。

まず、 を に設定しようとしていignoreClassますignoredirtyignoredirtyはデフォルト値なので、設定する必要はありません。ただし、別の値に設定する必要がある場合は、次の構文を使用して設定できます。

$.DirtyForms.ignoreClass = 'my-ignore-class';

第 2 に、バージョン 1.0.0 では、ignoreClassハイパーリンクでのみ機能しました。この動作は、バージョン 1.1.0 の入力要素と選択要素で動作するように修正されました。

バージョン 1.2.0 では、ignoreClass を親コンテナー要素に設定して、その中の要素からの入力またはクリックを無視することもできるようになりました。

于 2015-07-28T10:18:12.510 に答える