验证至少一个子复选框,对应于复选框数组的已选中元素

时间:2013-10-11 08:53:46

标签: javascript jquery validation checkbox

我在一个具有一组嵌套复选框组的表单上实现了jQuery验证。主复选框是复选框数组的元素。如果选中主复选框,则必须至少检查子复选框。子复选框位于div中,并使用main复选框的值生成id。

以下代码有效,但我相信这可以简化得更多。我会请求这里的专家做得更好。提前致谢。

$.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");

1 个答案:

答案 0 :(得分:0)

一种改进方法是在遇到任何一个未经检查的子复选框时从$ .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");

因此不需要剩余的迭代。