Как получить значение проверенного радио
Я пытаюсь получить значение проверенного переключателя с помощью следующего кода:
<html>
<head>
<script type="text/javascript" >
window.onload = initAll;
function initAll(){
var allAnchors = document.getElementsByName("options");
for ( var int = 0; int < allAnchors.length; int++) {
if(allAnchors[int].className == "buttonLink"){
allAnchors[int].onclick = fetchQuestion;
}
}
}
function fetchQuestion(){
var toLoad = this.href;
var selectedAnswer = "";
var allRadio = document.getElementsByTagName("input");
for(var i = 0;i<allRadio.length; i++){
if(allRadio[i].checked == true){
selectedAnswer = allRadio[i].value;
}
}
alert(selectedAnswer);
return false;
}
</script>
</head>
<body>
<input type="radio" name="options" value="optA" /> Operating System is used for Efficeint Resource Sharing Operating System is used for Efficeint Resource Sharing Operating System is used for Efficeint Resource Sharing <br/>
<input type="radio" name="options" value="optB" /> Operating System is used for Efficeint Resource Sharing <br/>
<input type="radio" name="options" value="optC" /> Operating System is used for Efficeint Resource Sharing <br/>
<input type="radio" name="options" value="optD" /> Operating System is used for Efficeint Resource Sharing <br/>
<a href="SubmitSheet" class="buttonLink">Submit</a>
<a href="NextQuestion" class="buttonLink">Next</a>
<a href="PreviousQuestion" class="buttonLink">Previous</a>
<a href="PassQuestion" class="buttonLink">Pass</a>
</body>
</html>
вот если бы я использовал document.getElementByTagName("input")
тогда это работает. но с document.getElementByName("options")
это не. Так в чем же проблема? Не могу ли я использовать document.getElementByName с переключателями.
5 ответов
Возможно, вы имеете в виду document.getElementsByName (). Обратите внимание на множественное число, поскольку оно может возвращать более одного узла.
Вероятно, проблема в том, что вы вызываете "document.getElementByName (" options ")"
getElementByName не определено
Вы хотите вызвать getElementsByName, который вернет коллекцию элементов.
Я считаю, что метод множественного числа document.getElementsByName
потому что многие предметы могут иметь имя. Если вы хотите один элемент, добавьте идентификатор и используйте document.getElementById
или используйте имя и сузьте свой массив.
Просто измените эту строку:
var allAnchors = document.getElementsByName("options");
На это вместо этого:
var allAnchors = document.getElementsByTagName("a");
И ваш код должен работать как положено.
getElementsByName
имеет свое собственное использование, но чтобы захватить все якорные теги в документе, вам нужен другой метод, который getElementsByTagName
,
Смотри сам
javascript:a=document.getElementsByName("options")[0];alert(a.value)
javascript:a=document.getElementsByTagName("input")[0];alert(a.value)