2015-11-13 74 views
1

獲得的值「開」單選按鈕

var allQuestions = [{ 
 
    question1: "What is 1 + 1?", 
 
    choices: ["1", "2", "3", 4], 
 
    correctAnswer: ["2"] 
 
}, { 
 
    question2: "What is 2 + 2?", 
 
    choices: ["6", "2", "3", 4, ], 
 
    correctAnswer: ["4"] 
 
}, { 
 
    question3: "What is 3 + 3?", 
 
    choices: ["3", "6", "9", 12], 
 
    correctAnswer: ["6"] 
 
}]; 
 

 
var newArray = shuffleArray(allQuestions); 
 

 
function shuffleArray(array) { 
 
    for (var i = array.length - 1; i > 0; i--) { 
 
    var j = Math.floor(Math.random() * (i + 1)); 
 
    var temp = array[i]; 
 
    array[i] = array[j]; 
 
    array[j] = temp; 
 
    } 
 
    return array; 
 
} 
 

 
function appendQuestions(number) { 
 
    if (newArray == "undefined" || newArray == "null" || newArray.length == 0) { 
 
    document.getElementById("questionForm").innerHTML = "Complete!"; 
 
    } else { 
 
    for (i = 0; i < 4; i++) { 
 
     $("#questionForm").append("<input name='question' type='radio'>" + 
 
     JSON.stringify(newArray[0].choices[i]) + "</input>") 
 
    } 
 
    } 
 
} 
 

 
$(function() { 
 
    $("#questionList").empty(); 
 
    appendQuestions(); 
 
    newArray.shift(); 
 
}) 
 

 
function isCorrectAnswer() { 
 
    checkedVal = $("input[type=radio][name=question]:checked").val(); 
 
    if (checkedVal == newArray[0].correctAnswer) { 
 
    alert("Correct!"); 
 
    } else { 
 
    alert("Wrong!"); 
 
    } 
 
    alert(checkedVal); 
 
} 
 

 
$("#submitButton").click(function() { 
 
    isCorrectAnswer(); 
 
    $("#questionForm").empty(); 
 
    appendQuestions(); 
 
    newArray.shift(); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='container'> 
 
    <section id='questions'> 
 
    <form id="questionForm"> 
 
    </form> 
 
    <div style='clear:both'></div> 
 
    <input id='submitButton' type='button' value='Submit'> 
 
    </section> 
 
</div>

首先,抱歉的代碼粘貼量。我不知道如果我錯過了一些小錯誤,或者我只是寫錯了代碼,所以我認爲最好是發佈所有錯誤代碼。

我想獲得一個單選按鈕的值。在isCorrectAnswer函數中,前兩行用於確定當前選中的單選按鈕的值。問題是當我提醒單選按鈕的值時,它只是說「開」。我已經搜索了最後一小時,試圖找出這意味着什麼或如何解決它,並找不到一件事。

我很抱歉,如果這是一個愚蠢的問題,或者它已被回答。

+1

你的收音機沒有價值嗎? –

+0

哇,你說得對。出於某種原因,我認爲把HTML中的東西等同於它的價值。我添加了一個值=「」,它的工作原理。我覺得自己像個白癡。謝謝。 –

+1

'.innerhtml'不是'val'或者是的,增加一個值'將會工作到 – Blag

回答

2

你必須改變這一行:

$("#questionForm").append("<input name='question' type='radio'>" + 
     JSON.stringify(newArray[0].choices[i]) + "</input>"); 

要:

$("#questionForm").append("<input name='question' type='radio' value='" + 
     JSON.stringify(newArray[0].correctAnswer[i]) + "' />"+JSON.stringify(newArray[0].choices[i])); 

希望這有助於。

+0

它當然可以。非常感謝! –