Javascript 验证至少一个子复选框,对应于复选框数组的选中元素
我在具有一组嵌套复选框组的表单上实现了jQuery验证。主复选框是复选框数组的一个元素。如果选中主复选框,则至少必须选中子复选框上的复选框。子复选框位于div中,id是使用主复选框的值生成的 下面的代码可以工作,但我确信这可以简化很多。我想请这里的专家们改进一下。提前谢谢Javascript 验证至少一个子复选框,对应于复选框数组的选中元素,javascript,jquery,validation,checkbox,Javascript,Jquery,Validation,Checkbox,我在具有一组嵌套复选框组的表单上实现了jQuery验证。主复选框是复选框数组的一个元素。如果选中主复选框,则至少必须选中子复选框上的复选框。子复选框位于div中,id是使用主复选框的值生成的 下面的代码可以工作,但我确信这可以简化很多。我想请这里的专家们改进一下。提前谢谢 $.validator.addMethod("atLeastOne", function(value, element) { var flag = true; $('.mod_check').each(func
$.validator.addMethod("atLeastOne", function(value, element) {
var flag = true;
$('.mod_check').each(function(){
if (this.checked){
if($('#actions_'+$(this).val()).find('input[type=checkbox]:checked').length == 0)
flag = false;
}
});
return flag;
}, "Select at least one of the actions");
一种改进的方法是在遇到任何一个未选中的子项复选框时,从$each中去掉
$.validator.addMethod("atLeastOne", function(value, element) {
var flag = true;
$('.mod_check').each(function(){
if (this.checked){
if($('#actions_'+$(this).val()).find('input[type=checkbox]:checked').length == 0)
flag = false;
return;
}
});
return flag;
}, "Select at least one of the actions");
因此,剩余的迭代是不需要的。您是否也可以共享html?您有一个很好的观点,但我正在寻找一些东西来循环通过主复选框数组的复选框,但我遇到了一些问题。这方面有什么建议吗?谢谢。这个问题可能是由于选择器造成的,如果你想发布HTML也会有帮助。现在,无论是否选中,每个复选框都会在所有复选框中循环。我们只需要检查一下就可以了,对吧?这对我不起作用。