使用jQuery检查多组单选按钮

时间:2013-02-05 09:51:16

标签: jquery html

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

<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检查了每组按钮?

1 个答案:

答案 0 :(得分:2)

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

其中2project_中以name开头的广播组数量。

Demo

请注意,W3C建议始终保留预先选择的选项,因为用户无法轻松地将无线电设备返回到未确定(无选择)状态。来自HTML4.01 Forms spec

  

如果最初没有共享相同控件名称的集合中的单选按钮   “on”,用户代理行为,用于选择最初“打开”哪个控件   未定义。 注意。由于现有的实现处理此问题   不同情况下,当前规范与RFC 1866不同   ([RFC1866]第8.1.2.4节),其中规定:

     
    

在任何时候,都会检查一组中的一个单选按钮。如果     一组单选按钮的元素都没有指定     `CHECKED',然后用户代理必须检查第一个单选按钮     最初的设置。

  
     

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

这也减少了所需的前端检查量。虽然,我不记得任何强大的浏览器强制检查无线电,并且当前的HTML5.1 Forms spec标准化了最初未选中所有无线电的能力:

  

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