2013-11-24 25 views
0

我在嘗試檢查單選按鈕的答案。有隻有兩個選項,我試圖使用selectedIndex,然後檢查答案與放在另一個數組中的值。問題和答案數組都可以正常工作,但無論選中哪個答案,該函數都認爲它是正確的,並將分數添加到我的全局計分計數器變量中。 answers數組只包含每個插槽中的數字1或2,具體取決於問題,所以我不確定它爲什麼不起作用。將單選按鈕結果與數組值相比較的函數錯誤

function checkAnswer0() 
{ 
if((document.getElementById('trueorfalse0').selectedIndex = 1) && (answersPushed[0]   == 1)) 
{ 
    scoreCounter++; 
    document.getElementById("warning").innerHTML = "Correct Answer"; 
} 

else if((document.getElementById('trueorfalse0').selectedIndex = 2) && (answersPushed[0] == 2)) 
{ 
    scoreCounter++; 
    document.getElementById("warning").innerHTML = "Correct Answer";  
} 

else{ 
    document.getElementById("warning").innerHTML = "Wrong Answer"; 
    } 

}

我的形式部分看起來像這一點,並在體內表單標籤內舉行。

<input name="Answer0" type="radio" id="trueorfalse0" value="true" onclick="checkAnswer0()"/> True <br/> 
<input name="Answer0" type="radio" id="trueorfalse0" value="false" onclick="checkAnswer0()" /> False 

如果有人能幫助我理解問題的性質,我會很感激。我知道有很多其他的方法可以解決這個問題,但我想在我的腦海裏梳理一下爲什麼這個問題不適合我。提前致謝!

回答

0

我懷疑你如果條件應該像if((document.getElementById('trueorfalse0').selectedIndex == 1) && ...,注意額外的=,它是有道理的第一部分。

EDIT

的selectedIndex是選擇輸入的屬性。要檢查是否檢查了無線電輸入,必須循環輸入一組輸入並檢查checked屬性的值。

var answers = document.getElementById('trueorfalse0'); 
var value; 
for(var i = 0; i < answers.length; i++){ 
    if(answers[i].checked){ 
    value = answers[i].value; 
    } 
} 
+0

我試過了,雖然我明白了你的觀點,恐怕我的核心問題還存在,還有其他的想法嗎? – Clustercuss

+0

更新了答案,您不能使用'selectedIndex'來執行您想要的操作。 – Martin