JQuery - 至少检查了一个复选框

Lar*_*mie 6 validation jquery

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

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

Phi*_*ert 24

要检查是否至少检查了一个:

 $(".classname:checked", container).length > 0
Run Code Online (Sandbox Code Playgroud)

"container"是(可选的)容器元素.

如果您想避免使用类名进行分组,您应该只为每个复选框指定相同的名称:

<input type="checkbox" name="group1" value="1" />
<input type="checkbox" name="group1" value="2" />
<input type="checkbox" name="group1" value="3" />
Run Code Online (Sandbox Code Playgroud)

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

 $("[name=group1]:checked").length > 0
Run Code Online (Sandbox Code Playgroud)

  • 当多个复选框具有相同名称时,您不会丢失信息.如果选中多个项目,数据将作为"value1,value2,value3"发布到服务器 (2认同)

Lar*_*mie 3

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

将此 JavaScript 函数添加到页面

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

然后在页面中添加一个CustomValidator

<asp:CustomValidator runat="server" ID="cvDDLCorrect" ClientValidationFunction="ValidateDDA"
ErrorMessage="No hay resuesta correcta" CssClass="error" />
Run Code Online (Sandbox Code Playgroud)

奇迹般有效。感谢您的建议。