2011-11-14 63 views
0

我正在使用jQuery验证插件,我正在寻找添加一些自定义逻辑。我有一系列有复选框的复选框,这些复选框与它们相关联。对于某些(不是全部)这些父复选框,我想要求选中其中一个子复选框。我没有问题硬编码此所以我添加一个字段像这样我的DOM:jQuery自定义验证器

<input type="hidden" id="child_required_1" class="child_required_1" /> 

,然后添加一个自定义的验证这样的:

jQuery.validator.addMethod('child_required_1', function(val, element) { 
if($('#product_responses_1').length > 0) { 
    if($('#product_responses_1').is(':checked')) { 
     var count = $("input:checkbox:checked[id^='children_tags_1_']").length; 

     if(count == 0) { 
      return false; 
     } 
    } 
} 

return true; 
}, 'You must select at least one child.'); 

这工作完全正常。但是,当我复制所有这些并添加“_2”时,只有一个验证器似乎触发。那么从我能收集到的信息来看,自定义验证器对每个表单都是唯一的?如果是这样的话,我该如何处理这样的情况,我可能需要15-20个这样的情况在不同的地方展示?我不想只显示一个错误。

我也可以创建一个类规则,但这并不能解决我创建多个错误标签并将它们放置在相关位置的问题。

回答

0

显然在一个隐藏的领域它没有工作,但是当我删除隐藏的领域,并将该类应用到实际复选框本身,它工作正常。不完全确定原因。