要素にjQuery検証を使用しているフォームがあります。フォームには、2つのテキストフィールドと一連のチェックボックスが含まれています。私のコードの関連部分は次のようになります。
$.validator.addMethod('require-one', function (value) {
return $('.require-one:checked').size() > 0;
}, 'Who should see your question?');
var checkboxes = $('.require-one');
var checkbox_names = $.map(checkboxes, function(e,i) { return $(e).attr('name')}).join(' ');
$('FORM#node-form').validate({
groups: { checks: checkbox_names },
errorPlacement: function(error, element)
{
if (element.attr('type') == 'checkbox') {
error.insertAfter('#user_role_buttons > div > label');
}
else {
error.insertAfter(element);
}
}
});
チェックボックスをグループとして処理するには、新しいメソッドと「チェックボックス」が必要です。これは、#user_role_buttons内にエラーメッセージを配置するなど、実際には正しく機能しています。
私の問題/質問は、2つのテキスト要素のエラーメッセージの配置を設定する方法が見つからないことです。これらのアイテムの検証は正しく機能しています。私は彼らの位置を特定することはできません。特に、これらの項目に関連するエラーは、検証ハンドラーのerrorPlacement句に表示されません。errorPlacementの関数内にconsole.log(element)ステートメントを配置して何が起こっているかを確認すると、表示されるのはチェックボックスに関連するエラー(1つあると仮定)。テキストアイテムのメッセージは、半合理的な場所に配置されていますが、私が望む場所には配置されていません。
私は何かが欠けているに違いありません。誰かがそれが何であるかを見ることができますか?