如何用JavaScript检查一个单选按钮是否被选中?

我在一个HTML表单中拥有两个单选按钮。当其中一个字段为空时,会出现一个对话框。 我怎样才能检查一个单选按钮是否被选中?

假设你的HTML是这样的

<input type="radio" name="gender" id="gender_Male" value="Male" />
<input type="radio" name="gender" id="gender_Female" value="Female" />

对于客户端的验证,这里有一些Javascript来检查哪一个被选中。

if(document.getElementById('gender_Male').checked) {
  //Male radio button is checked
}else if(document.getElementById('gender_Female').checked) {
  //Female radio button is checked
}

上述内容可以根据你的标记的确切性质而变得更有效,但这应该足以让你开始。


如果你只是想看看页面上任何地方的***单选按钮是否被选中,PrototypeJS可以让它变得非常简单。

这里有一个函数,如果页面上至少有一个单选按钮被选中,它将返回true。 同样,这可能需要根据你的特定HTML进行调整。

function atLeastOneRadio() {
    return ($('input[type=radio]:checked').size() > 0);
}

对于服务器端的验证(记住,你不能完全依赖Javascript进行验证!),这取决于你选择的语言,但你要检查请求字符串的gender值。

评论(8)

使用jQuery,它将是这样的

if ($('input[name=gender]:checked').length > 0) {
    // do something here
}

让我把它分成几块,以便更清楚地涵盖它。 jQuery从左到右处理事物。

input[name=gender]:checked

1.input 将其限制在输入标签。 2.[name=gender] 将其限制在前一组中具有性别名称的标签。 3.3. :checked 将其限制在前一组中被选中的复选框/收音机按钮。

如果你想完全避免这种情况,可以在HTML代码中把其中一个单选按钮标记为选中(checked="checked"),这样可以保证一个单选按钮总是被选中。

评论(6)

一个香草的JavaScript方式

var radios = document.getElementsByTagName('input');
var value;
for (var i = 0; i < radios.length; i++) {
    if (radios[i].type === 'radio' && radios[i].checked) {
        // get value, set checked flag or do whatever you need to
        value = radios[i].value;       
    }
}
评论(8)