2010-03-23 2 views
2

У меня есть две группы переключателей, которые отображаются по-разному в зависимости от значения, выбранного на другом переключателе. Дело в том, что я хотел бы установить значение по умолчанию для группы в первый элемент в группе radioobutton, но когда я переключаюсь с другого переключателя, он сохраняет ранее выбранное значение, когда я хочу, чтобы он был сброшен до значения по умолчанию стоимость.Как получить доступ к отдельным элементам radioButton?

Я искал в репозитории javascript, но, видимо, я не могу получить доступ, как он говорит с radio[1].checked = true ... В нем говорится, что radio[1] не определено, но радио является объектом элемента ввода HTML. Я обращаюсь к нему из другого файла, но работает var radio = document.getElementById("radio"), но я не могу получить доступ к отдельным радиокнопкам.

Спасибо заранее

ответ

2

Вы можете получить доступ к ним, если вы даете каждый RadioButton индивидуальный идентификатор. Атрибут «name» определяет группу.

+0

Большое спасибо Robusto! Я не играл с атрибутами javascript в радиоблоке, я не знал, что вы можете назначить идентификатор определенному радиобатту ... Спасибо! :) – vikitor

1

Я согласен с Robusto в том, что вы должны указать атрибуты идентификаторов радиоэлементов и ссылаться на них таким образом.

Однако, вы можете также получить доступ к form.elements[] массиву, и получить доступ к значению радиокнопок таким образом:

for(i = 0; i < document.formname.elements.length; i++) { 
    if(document.formname.elements[i].type == "radio") { 
    document.formname.elements[i].checked = true; 
    } 
} 
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> 
1

Если вы хотите обратиться к определенному переключателю в группе, используя атрибут id в соответствии с ответом Робусто - это способ сделать это. Тем не менее, если вы хотите сделать что-то с каждым из переключателей в группе, вы можете использовать getElementsByName, который возвращает коллекцию всех элементов, найденных с заданным именем:

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