【问题标题】:JQuery - is at least one checkbox checkedJQuery - 至少选中一个复选框
【发布时间】:2010-05-31 06:27:58
【问题描述】:

我正在学习 JQuery,这主要归功于 Stack Overflow 上的积极参考。我需要一个函数来检查具有相同 CSS 类的元素中的所有复选框。如果至少检查其中一个,它应该返回 true。元素中还有其他与勾选无关的框。

CSS 类是不必要的,仅用于创建一种识别组中复选框的方法。这感觉像是一种不好的做法,因此欢迎任何有关其他识别它们的方法的建议。

【问题讨论】:

    标签: jquery validation


    【解决方案1】:

    检查是否至少有一个被选中:

     $(".classname:checked", container).length > 0
    

    “container”是(可选的)容器元素。

    如果您想避免使用类名进行分组,您应该简单地为每个复选框赋予相同的名称:

    <input type="checkbox" name="group1" value="1" />
    <input type="checkbox" name="group1" value="2" />
    <input type="checkbox" name="group1" value="3" />
    

    然后可以将测试代码改为:

     $("[name=group1]:checked").length > 0
    

    【讨论】:

    • 很高兴知道。不幸的是,复选框是通过 ASP.Net 和覆盖 UniqueID 是太多的解决方案。
    • 多个复选框使用相同名称有什么意义? (除非您使用 PHP 并且名称以 [] 结尾)如果用户只能选择其中一个,则应使用单选按钮。如果他可以选择多个,那么您将丢失信息。
    • 当多个复选框具有相同名称时,您不会丢失信息。如果选中多个项目,数据将以“value1,value2,value3”的形式发布到服务器
    【解决方案2】:

    由于页面布局,单选按钮列表不是一个选项。我用自定义验证器解决了这个问题。

    将此 JavaScript 函数添加到页面中

    function ValidateDDA(s, a) {
        a.IsValid = ($(".chk:checked", $('parentDiv')).length > 0);
    }
    

    然后在页面中添加一个CustomValidator

    <asp:CustomValidator runat="server" ID="cvDDLCorrect" ClientValidationFunction="ValidateDDA"
    ErrorMessage="No hay resuesta correcta" CssClass="error" />
    

    像魅力一样工作。感谢您的建议。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多