我在表单中使用多组单选按钮。它看起来像这样:
<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检查了每组按钮?
答案 0 :(得分:2)
if ($('input[type="radio"][name^="project_"]:checked').length === 2) {
//ok
} else //not ok
其中2
是project_
中以name
开头的广播组数量。
请注意,W3C建议始终保留预先选择的选项,因为用户无法轻松地将无线电设备返回到未确定(无选择)状态。来自HTML4.01 Forms spec:
如果最初没有共享相同控件名称的集合中的单选按钮 “on”,用户代理行为,用于选择最初“打开”哪个控件 未定义。 注意。由于现有的实现处理此问题 不同情况下,当前规范与RFC 1866不同 ([RFC1866]第8.1.2.4节),其中规定:
在任何时候,都会检查一组中的一个单选按钮。如果 一组单选按钮的元素都没有指定 `CHECKED',然后用户代理必须检查第一个单选按钮 最初的设置。
由于用户代理行为不同,因此作者应确保每个代理行为 一组最初“打开”的单选按钮。
这也减少了所需的前端检查量。虽然,我不记得任何强大的浏览器强制检查无线电,并且当前的HTML5.1 Forms spec标准化了最初未选中所有无线电的能力:
注意:如果单选按钮组中的任何单选按钮在插入文档时都没有被选中,那么它们最初都将在界面中取消选中,直到其中一个为止。被检查(由用户或脚本)。