JQuery - 至少有一个复选框被选中

6

我正在学习 JQuery,多亏了 Stack Overflow 上的正面推荐。我需要一个函数,它可以检查元素中具有相同 CSS 类的所有复选框。如果其中至少有一个被选中,则应返回 true。元素中还有其他不相关的框。

CSS 类是不必要的,只是为了创建一种识别组内复选框的方式。这感觉像是不良做法,因此欢迎任何关于其他识别它们的方法的建议。

2个回答

24

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

 $(".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太过于繁琐了。 - Laramie
1
使用相同的名称来表示多个复选框有什么意义呢?(除非您使用PHP并以“[]”结尾)如果用户只能选择其中一个,则应使用单选按钮。如果他可以选择多个,则会丢失信息。 - Tgr
2
当多个复选框具有相同名称时,您不会丢失信息。如果选中多个项目,则数据将作为“value1,value2,value3”发布到服务器。 - Philippe Leybaert

3

由于页面布局的原因,无法使用单选按钮列表。我使用了自定义验证器来解决这个问题。

将以下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" />

非常好用,感谢您的建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接