1

我有一组具有相同名称的复选框。他们都有不同的价值观。它们只是表格的一部分。它们不构成整个表格。我希望复选框在该组的最后一个复选框之后显示它们的错误。

可以在 jQuery 中做这样的事情吗?

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

我该怎么做呢?

谢谢,
伊恩·麦卡洛

4

4 回答 4

2

我意识到这是一个较老的问题,但是我需要在表单上使用类似的功能并解决了它。

使用 jQuery 1.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

您的代码中的变量“标签”在做什么?

你不应该使用'error'变量吗?

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