我有一组所有名称相同的复选框。他们都有不同的价值观。它们只是表格的一部分。它们不构成整个表格。我希望复选框在该组的最后一个复选框之后显示错误。
可以在jQuery中做这样的事情吗?
$("#myform").validate({
errorPlacement: function(error, element) {
var checkboxes = $("#checkboxes");
if(checkboxes.contains(element))
label.insertAfter(checkboxes[checkboxes.length-1]);
},
debug:true
})
我将如何做到这一点?
谢谢,
伊恩麦卡洛
答案 0 :(得分: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);
}
}
});
答案 1 :(得分: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);
}
});
答案 2 :(得分:0)
你能不能做到
if(checkboxes.contains(element)) {
checkboxes.after(label);
}
答案 3 :(得分:0)
您的代码中的变量'label'是什么?
你不应该使用'error'变量吗?
error.insertAfter(checkboxes[checkboxes.length-1]);