【问题标题】:jQuery Validation: validate atleast one checkbox is selected from a list where names are differentjQuery Validation:验证从名称不同的列表中选择了至少一个复选框
【发布时间】:2010-12-16 15:08:12
【问题描述】:

我需要使用 jQuery Validation Plugin 验证从复选框列表中选择了至少一个复选框。由于复选框是 ASP.NET GridView 控件的一部分,因此这些复选框的名称将不同,这使得为验证插件设置规则变得复杂,因为它需要规则的名称。我搜索了一下,发现了以下问题

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

【问题讨论】:

    标签: asp.net jquery validation jquery-validate


    【解决方案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 类应用于集合中的每个复选框。如果没有选中任何框,则需要第一个。

    【讨论】:

    • @tvanfosson,我的方案是验证至少选择了一个复选框,而不是只选择了一个复选框(我没有将它用作单选按钮组)您的规则似乎表明只有一个应该被选中我确实采用了类方法,缺点似乎是每个复选框都会调用验证,消息也会调用,即使我使用容器来显示错误消息。
    • 没有。如果至少选中一个复选框,则不需要。如果没有检查,那么所有都是必需的——并且由于没有检查它们,这将导致每个验证错误。它的缺点是每个人都有一条消息。
    • 如果没有选中,您可以调整它以也为第一个元素返回 true。我会调整的。
    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 2015-11-06
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    相关资源
    最近更新 更多