2009-11-14 62 views
2

我需要验证,使用jQuery验证插件从复选框列表中选择至少一个复选框。由于复选框是ASP.NET GridView控件的一部分,因此这些复选框的名称将会不同,这使得为验证插件复合体设置规则,因为它需要规则的名称。我寻觅了一圈,发现以下问题jQuery验证:验证至少有一个复选框从名单不同的列表中选择

我认为首要的问题是一个更好的解决办法,但我仍然觉得这是不该做的正确方法。其他人是否有更多的选择来解决这个问题。

回答

1

如果一个复杂的规则只有在没有选中其他复选框的情况下才需要该项目,那么该如何操作呢?

rules: { 
    'require-one': { 
     required : { 
      depends: function(element) { 
         var allBoxes = $('.require-one'); 
         if (allBoxes.filter(':checked').length == 0) { 
          if (allBoxes.eq(element).length != 0) { 
           return true; 
          } 
         } 
         return false; 
        } 
     } 
    } 
} 

然后,你的require-one类应用到集合中的每个复选框。如果没有选中任何一个框,第一个将是必需的。

+0

@tvanfosson,我的场景是验证至少一个复选框被选中,而不是只有一个复选框被选中(我没有使用它作为单选按钮组)你的规则似乎表明,只有一个应该被选中 我做了去类的方法,缺点似乎是每个复选框都会调用验证,即使我使用容器显示错误消息,消息也是如此。 –

+0

否。如果至少选中一个复选框,则不需要任何复选框。如果没有选中,那么全部都是必需的 - 并且由于它们没有被检查,它会导致每个验证错误。它的缺点是每个人都有一个消息。 – tvanfosson

+0

如果没有选中,你可以调整它以返回true。我会调整。 – tvanfosson

相关问题