Как получить значение проверенного радио

Я пытаюсь получить значение проверенного переключателя с помощью следующего кода:

<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" />&nbsp; &nbsp;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" />&nbsp; &nbsp;Operating System is used for Efficeint Resource Sharing <br/>
             <input type="radio" name="options" value="optC" />&nbsp; &nbsp;Operating System is used for Efficeint Resource Sharing <br/>
             <input type="radio" name="options" value="optD" />&nbsp; &nbsp;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 или используйте имя и сузьте свой массив.

JavaScript getElementByName не работает

Просто измените эту строку:

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)
Другие вопросы по тегам