1

すべて同じ名前のチェックボックスのグループがあります。それらはすべて異なる値を持っています。それらはフォームの一部にすぎません。フォーム全体を構成するわけではありません。そのグループの最後のチェックボックスの後にチェックボックスにエラーを表示させたい。

jQueryでこのようなことをすることは可能ですか?

$("#myform").validate({
  errorPlacement: function(error, element) {
     var checkboxes = $("#checkboxes");
     if(checkboxes.contains(element))
        label.insertAfter(checkboxes[checkboxes.length-1]);
   },
   debug:true
 })

どうすればこれを行うことができますか?

ありがとう、
Ian McCullough

4

4 に答える 4

2

これは古い質問だと思いますが、フォームに同様の機能が必要で、それを解決しました。

jQuery1.4.2の使用

したがって、次の形式が与えられます。

<form id="checkForm" method="get" action="">
<ul id="checkboxes">
    <li><input type="checkbox" name="checkOne" id="checkOne" value="1" /></li>
    <li><input type="checkbox" name="checkTwo" id="checkTwo" value="2" /></li>
    <li><input type="checkbox" name="checkThree" id="checkThree" value="3" /></li>
</ul>
<input class="submit" type="submit" value="Submit"/>

次に、次のことができます

$("#checkForm").validate({
    rules: {
        checkOne: "required",
        checkTwo: "required",
        checkThree: "required"
    },
    errorPlacement: function(error, element) {
        if ($("#checkboxes").has(element).size() > 0) {
            error.insertAfter($("#checkboxes input:checkbox:last"));
        } else {
            error.insertAfter(element);
        }
    }
});
于 2010-05-14T15:14:36.480 に答える
1

これは、ページ上のすべてのチェックボックスで機能する一般的なソリューションです。グループの最後のチェックボックスの後にエラーメッセージが挿入されます。

$('form').validate({
    rules: {
        checkbox_group_1: {
            required: true
        },
        checkbox_group_2: {
            required: true,
        }
    },
    errorPlacement: function(error, element) {
        if (element.is(':checkbox'))
            error.insertAfter($('input[name=' + element.attr('name') + ']').last());
        else
            error.insertAfter(element);
    }
});
于 2014-03-18T22:06:01.473 に答える
0

あなたはただすることができませんでした

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
于 2009-07-06T20:43:44.037 に答える
0

コードで変数「label」は何をしていますか?

'error'変数を使用するべきではありませんか?

error.insertAfter(checkboxes[checkboxes.length-1]);
于 2009-07-06T20:49:57.393 に答える