1

我在具有一组嵌套复选框组的表单上实现了 jQuery 验证。主复选框是复选框数组的一个元素。如果选中主复选框,则至少必须选中子复选框。子复选框位于 div 中,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");
4

1 回答 1

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

因此不需要剩余的迭代。

于 2013-10-11T09:14:04.287 回答