我有2个单选按钮组显示不同,具体取决于在另一个单选按钮上选择的值。问题是我想将组的默认值设置为radiobutton组中的第一个元素,但是当我从另一个单选按钮更改时,它会保留先前选择的值,当我希望将其重置为默认值时值。
我一直在javascript存储库中搜索,但显然我无法像radio[1].checked = true
那样访问...它说radio[1]
未定义,但radio是HTML Input元素对象。我正在从其他文件访问它,但var radio = document.getElementById("radio")
有效,但我无法访问各个单选按钮。
提前谢谢
答案 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]
}