jQuery验证插件复选框errorPlacement
我有一组复选框,它们都有相同的名称。他们都有不同的价值观。它们只是表单的一部分。它们并不构成整个表单。我希望复选框在该组的最后一个复选框之后显示其错误 可以在jQuery中执行类似的操作吗jQuery验证插件复选框errorPlacement,jquery,validation,checkbox,errorplacement,Jquery,Validation,Checkbox,Errorplacement,我有一组复选框,它们都有相同的名称。他们都有不同的价值观。它们只是表单的一部分。它们并不构成整个表单。我希望复选框在该组的最后一个复选框之后显示其错误 可以在jQuery中执行类似的操作吗 $("#myform").validate({ errorPlacement: function(error, element) { var checkboxes = $("#checkboxes"); if(checkboxes.contains(element))
$("#myform").validate({
errorPlacement: function(error, element) {
var checkboxes = $("#checkboxes");
if(checkboxes.contains(element))
label.insertAfter(checkboxes[checkboxes.length-1]);
},
debug:true
})
我该怎么做呢
谢谢,
伊恩·麦卡洛你就不能这么做吗
if(checkboxes.contains(element)) {
checkboxes.after(label);
}
变量“label”在代码中的作用是什么 您不应该使用“error”变量吗
error.insertAfter(checkboxes[checkboxes.length-1]);
我意识到这是一个较老的问题,但我需要在表单上使用类似的功能并解决了它 使用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"/>
这里有一个通用的解决方案,可以处理页面上的所有复选框。它将在组的最后一个复选框后插入错误消息
$('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);
}
});
这似乎不起作用。我没有收到来自客户端的错误,但也没有收到错误消息。另外,表单将不会提交。您是否可以尝试在jsbin.com上创建一个示例测试页面?通过该问题进行调试将更容易。此示例几乎可以正常工作。我只需要在
元素.attr('name')
部分前后添加双引号。它试图找到input[name=attribute]
而不是input[name=“attribute”]
@mckenna。它们都应该有效(有引号和没有引号),但我觉得有趣的是,它只适用于有引号的用户。
$('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);
}
});