如何访问radioButton个别项目?

时间:2010-03-23 16:03:27

标签: javascript

我有2个单选按钮组显示不同,具体取决于在另一个单选按钮上选择的值。问题是我想将组的默认值设置为radiobutton组中的第一个元素,但是当我从另一个单选按钮更改时,它会保留先前选择的值,当我希望将其重置为默认值时值。

我一直在javascript存储库中搜索,但显然我无法像radio[1].checked = true那样访问...它说radio[1]未定义,但radio是HTML Input元素对象。我正在从其他文件访问它,但var radio = document.getElementById("radio")有效,但我无法访问各个单选按钮。

提前谢谢

4 个答案:

答案 0 :(得分:2)

如果您为每个单选按钮指定一个IS,则可以访问它们。 “name”属性定义组。

答案 1 :(得分:1)

我同意Robusto你应该给你的无线电元素ID属性,并以这种方式引用它们。

但是,您也可以访问form.elements[]数组,并以这种方式访问​​您的单选按钮值:

for( i = 0; i < document.formname.elements.length; i++ ) {
  if(document.formname.elements[i].type == "radio") {
    document.formname.elements[i].checked = true;
  }
}

答案 2 :(得分:1)

可以以您描述的方式访问它们:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>

<form action="" method="get">
    <input type="radio" name="foo" value="One">
    <input type="radio" name="foo" value="Two">
    <input type="button" value="Show info" onclick="showInfo()">
</form>

<script type="text/javascript"><!--
function showInfo(){
    var info = "";
    for(var i=0, len=document.forms[0].foo.length; i<len; i++){
        info += "Radio button " + document.forms[0].foo[i].name + " is " + (document.forms[0].foo[i].checked ? "checked" : "not checked") + " and has a value of '" + document.forms[0].foo[i].value + "'\n";
    }
    alert(info);
}
//--></script>

</body>
</html>

答案 3 :(得分:1)

如果你想引用组中的特定单选按钮,根据Robusto的回答使用id属性是可行的方法。但是,如果要对组中的每个单选按钮执行某些操作,可以使用getElementsByName,它返回使用给定名称找到的所有元素的集合:

var radio_buttons = document.getElementsByName("radio");
for (var i = 0; i < radio_buttons.length; i++)
{
  // do something with radio_buttons[i]
}