选择具有警报的多个单选按钮

时间:2013-06-16 10:34:52

标签: javascript html radio-button alert

基本上,我想创建一个具有类似测验结构的页面,用户可以从一个问题中选择一个选项,从另一个问题中选择另一个选项。根据每个问题的答案,它需要提醒某个输出。我只有一些Javascript的基本知识所以我使用相同的理论使用文本框来选择答案,但这次我想使用单选按钮。

这是带有单选按钮的页面的HTML代码:

<p>
                <strong>1. This is the first question?</strong><br />
                <input type="radio" name="op1" value="anw1">Option 1<br>
                <input type="radio" name="op1" value="anw2">Option 2
            </p>

            <p>
                <strong>2. This is the second question?</strong><br />

                <input type="radio" name="op2" value="anw1">Option 1<br>
                <input type="radio" name="op2" value="anw2">Option 2

            </p>

            <input type='button' value='Get result!' onClick='Submit()' /><br />

然后我在head标签中有这样的功能:

function Submit()
  {

var op1 = document.getElementsByName('op1')
var op2 = document.getElementsByName('op2')


if(op1== "anw1" && op2== "anw1")
{
alert ("This would be if both options one were selected")
}

else if (op1== "anw2"&& op2== "anw2")
{
alert ("This would be if the the seconds ones were selected")
}

else
{

alert ("This would be if neither were true")

}

}

然而,我似乎无法开始工作,所以我想我可能不会以正确的方式解决这个问题,尽管我确实希望它类似。我可以让其他部分工作,但没有其他工作。

1 个答案:

答案 0 :(得分:3)

以下版本将执行您的代码尝试执行的操作:

function Submit() {    
    var op1= document.getElementsByName('op1');
    var op2= document.getElementsByName('op2');

    if (op1[0].checked && op2[0].checked) {
        alert("This would be if both options one were selected");
    } else if (op1[1].checked && op2[1].checked) {
        alert("This would be if the the seconds ones were selected");
    } else {    
        alert("This would be if neither were true");
    }    
}

演示:http://jsfiddle.net/Hy9Nw/1

getElementsByName() function会返回一个列表(实际上是HTMLCollection),而不是单个元素,因此您不能只在代码中比较op1== "anw1"。即使它是单个元素,您也需要说op1.value == "anw1"

要访问op1返回的getElementsByName()列表中的各个项目,您可以将数组语法与op1[0]一起使用,并使用op1[0].checked测试是否已对其进行检查 - 返回truefalse