私のページには、基本的な入力要素のセットがあります。これらに加えて、いくつかの条件に基づいて動的に追加および削除する入力要素の別の束があります。追加しながら、jQueryイベント、ルール、メッセージを添付します。この時点まで、すべてが正常に機能しています。
これらの要素を削除しても(「remove」または「empty」メソッドを使用)、関連するルールとメッセージは削除されません。jQueryのドキュメントは、要素を削除すると関連するイベントが削除されることを具体的に示していますが、ルールについては明確ではありません。現在、これらの要素を反復処理することにより、これらのルールを削除しています。もっと良い方法はありますか?
label.errorの場合も同じです。入力要素を削除しても、非表示のメッセージも表示されたメッセージも、エラーメッセージが自動的に削除されるわけではありません。現在、入力要素を反復処理し、エラーメッセージラベルをクエリして('for = elementid'を使用)、それらを削除しています。もっと良い方法はありますか?
検証プラグインを使用していますが、ルールとメッセージが関連付けられています。コードスニペットは次のとおりです。
//remove the rules
$('.typeProperty').each(function(){ $(this).rules('remove'); });
//remove the input elements
$('#typeDiv').empty();
ここで、「typeProperty」は、動的に挿入された要素に関連付けたクラスです。
エラーメッセージを削除するためのコードスニペットは次のとおりです。
for (var i in inputElements) {
//jQuery messages
$("label.error[for={0}]".format(inputElements[i].attr('id'))).remove();
//custom messages
$("label.cerror[for={0}]".format(inputElements[i].attr('id'))).remove();
}
ここで、「inputElements」は動的に追加された入力要素の配列です。