2016-03-03 193 views
0

您好,我如何使用queryselector从单选按钮中读取两个值并将值存储在javascript中的数组中。下面的代码示例是:使用querySelector从单选按钮读取2个值

    <input type="radio" name="one" value="correct" class="firstRow">&nbsp;Option 1 Mark 1: $650 
        <input type="radio" name="two" value="incorrect" class="secondRow">&nbsp;Option 1 Mark 2: Twitter<br> 
        <input type="radio" name="one" value="incorrect" class="firstRow">&nbsp;Option 2 Mark 1:$550 
        <input type="radio" name="two" value="incorrect" class="secondRow">&nbsp;Option 2 Mark 2:Google<br> 
        <input type="radio" name="one" value="incorrect" class="firstRow">&nbsp;Option 3 Mark 1:$650 
        <input type="radio" name="two" value="correct" class="secondRow">&nbsp;Option 3 Mark 2:$650<br> 
        <!--button --> 
        <input type="button" value="Submit & Next Question" onclick="getAnswer3(this.form)" class="firstRow"> 
        <input type="button" value="Cancel & Clear Selection" onclick="clearOptions(this.form)"> 

的Javascript我的想法:

function getAnswer3(form) { 
    var result = []; 
    //this only reads one value but i need to read 2 values.. 
    var checked = form.querySelector("input[type=radio]:checked"); 

    if(!checked) { 
    alert('Please select 2 answers..'); 
} 
    else{ 
     //reads the values 
    } 
    //stores the values in the array.. 
} 
+0

而不是'input [type = one]:checked'应该是'input [type = radio]:checked' –

+0

@The是更新了更正,但它只需要一个值而不是2个值,因为我打算多多谢谢 – user3497437

回答

2

你需要form.querySelectorAll("input[type=radio]:checked");

记住什么来自querySelectorAll回来是不是一个真正的数组,所以没有按没有任何典型阵列所具有的特别有趣和简单的帮助方法。

它确实有一定的长度。尽管如此,

if checked不会有帮助。 你总是会得到一个NodeList回来。

该列表可能有长度=== 0,但它仍然是一个列表(因此仍然通过检查,看它是否存在)。请检查长度是否为< 2。

+0

非常感谢像魅力一样工作。 – user3497437

+0

javascript中的“==”和“===”的区别是什么 – user3497437

+0

@ user3497437类型强制。 'false == undefined;''null == undefined;''0 undefined;''''== undefined;'与'false!== undefined;'null!== undefined;''0!= = undefined;''''!== undefined;'不要害怕它,但要理解为什么你要在你的代码中使用'==='而不是'=='。 – Norguard