在同一个HTML页面中使用Javascript获取单选按钮的值

时间:2013-12-20 22:05:17

标签: javascript

我是javascript编码的新手。

我有点自己创建一个调查页面。我会将问题视为“正确或错误”,并将获得1分为真,0分为假。会有多个问题。

我尝试通过getElementsByName来实现它,但它没有用。我的代码就是这样。有人可以帮我吗?

<form>
<input type="radio" name="question1" value="1" id="q1"> true
<input type="radio" name="question1" value="0" id="q1"> false
</form>
<button onclick="myFunction()">try</button>

<script>
function myFunction()
{
var x=document.getElementsByName("question1").value;
window.alert("your score is " +x);
}
</script>

1 个答案:

答案 0 :(得分:1)

按名称分组的单选按钮与select元素的行为不同,即该组没有单个值。此外,getElementsByName()会返回HTMLCollection,这是一个类似数组的对象(请参阅Felix Kling的评论)。

我建议你做一些这样的事情(给idform):

function myFunction () {
    var form = document.getElementById('form'), // a reference to the form element
        question = form['question1'], // creates a HTMLCollection from elements having attribute name="question1"
        n; // loop index
    for (n = 0; n < question.length; n++) { // iterates through items in HTMLCollection
        if (question[n].checked) { // checks the current item's 'checked' property
            alert("your score is " + question[n].value); // found the checked-one
            break; // "checked" found, no need to search more
        }
    }
}

A live demo at jsFiddle

question定义中的括号表示法用于将来的目的。如果你有更多的单选按钮组,可以使用同一个函数处理,你可以将组的名称传递给function,然后在括号内使用该参数而不是文字值('question1'