0

我在表单中使用了多组单选按钮。它看起来像这样:

<input name='project[0]' type='radio' />
<input name='project[0]' type='radio' />
<input name='project[0]' type='radio' />

<input name='project[1]' type='radio' />
<input name='project[1]' type='radio' />
<input name='project[1]' type='radio' />

我也可以使用以下语法:

<input name='project_0' type='radio' />
<input name='project_0' type='radio' />
<input name='project_0' type='radio' />

<input name='project_1' type='radio' />
<input name='project_1' type='radio' />
<input name='project_1' type='radio' />

如何检查是否使用 jQuery 检查了每组按钮?

4

1 回答 1

2
if ($('input[type="radio"][name^="project_"]:checked').length === 2) {
   //ok
} else //not ok

以.2开头的无线电组的数量在哪里?project_name

演示

请注意,W3C 建议始终保留预先选择的选项,因为用户无法轻松地将收音机返回到未确定(未选择)状态。来自HTML4.01 表单规范

如果在一个集合中没有共享相同控件名称的单选按钮最初是“开”的,则用于选择哪个控件最初是“开”的用户代理行为是未定义的。笔记。由于现有实现对这种情况的处理方式不同,因此当前规范不同于 RFC 1866([RFC1866]第 8.1.2.4 节),其中指出:

在任何时候,都会检查一组中的一个单选按钮。如果一组单选按钮的任何元素都没有指定“已检查”,则用户代理必须首先检查该组的第一个单选按钮。

由于用户代理行为不同,作者应确保在每组单选按钮中,一个最初是“打开”的。

这也减少了所需的前端检查量。不过,我不记得有任何主要浏览器强制检查收音机,并且当前的HTML5.1 表单规范标准化了最初不选中所有收音机的能力:

注意:如果单选按钮组中的单选按钮在插入文档时没有被选中,那么它们在界面中最初都将被取消选中,直到其中一个被选中(由用户或由脚本)。

于 2013-02-05T09:55:29.603 回答