2014-01-23 59 views
0

我在做一個簡單的測驗應用程序。但我堅持訂購這些功能。製作測驗應用程序,卡在功能上

下面是代碼

// questions set 
var qtnsSet = [ 
    // format: [question, [comma, separated, options], index of correct ans. eg. 1] 

    ["What is the full form of IP?", ["Internet Provider", "Internet Port", "Internet Protocol"], 2], 
    ["Who is the founder of Microsoft?", ["Bill Gates", "Steve Jobs", "Steve Wozniak"], 0], 
    ["Full name of IBM?", ["Internet Business Machine", "International Business Machine", "Indian Business Machine"], 1] 
] 


// init vars 
var qtnNo = 0, 
    score = 0; 

// define elements 
var qtnContainer = $("qtn-container"), 
    optnsContainer = $("optns-container"), 
    submitBtn = $("submit-btn"); 

function $(id) { // Shortcut for document.getElementById 
    return document.getElementById(id); 
} 

function askQtn() { // ask question 
    var optns = qtnsSet[qtnNo][1], // options array 
    optnsHtml = ""; 
    for (var optnNo = 0; optnNo < optns.length; optnNo++) { 
    optnsHtml += createOptnHtml(optnNo, optns[optnNo]); 
    } 
    qtnContainer.textContent = qtnsSet[qtnNo][0]; // question 
    optnsContainer.innerHTML = optnsHtml; // options 
} 

function createOptnHtml(optnNo, optn) { // create html elements for options 
    // eg. <li><input type='radio' name='optn' value='Option' id='optn-0'> 
    // <label for='optn-0'>Option</label></li> 
    return "<li><h3><input type='radio' name='optn' value='" + optn + "' id='optn-" + optnNo + "'>" + 
    " <label for='optn-" + optnNo + "'>" + optn + "</label></h3></li>"; 
} 

function getGivenAns() { // get the answer given by user 
    var optns = document.getElementsByName("optn"); 
    for (var optnNo = 0; optnNo < optns.length; optnNo++) { 
    if (optns[optnNo].checked) { 
     return optnNo; // index of the chosen answer 
    } 
    } 
} 

function checkAns() { // check if user's right or not 
    if (getGivenAns() == qtnsSet[qtnNo][2]) { 
    score += 6; // 6 points for right answer 
    } 
} 

function submitAns() { 
    if (qtnNo <= qtnsSet.length) { 
    if (getGivenAns()) { 
     checkAns(); 
     qtnNo++; 
     askQtn(); 
    } else { 
     alert("Please choose an answer."); 
    }; 
    } else { 
    alert("Score: " + score); 
    }; 
} 

window.addEventListener("load", askQtn, false); 
submitBtn.addEventListener("click", submitAns, false); 

我無法配置submitAns()功能,使每一件事情正常工作。 如何訂購submitAns()內的功能?

+0

@suspectus感謝編輯。我沒有注意到這個錯字。 – user3208070

+0

沒有probs - 它讓我覺得可以做到這一點的功能。 – suspectus

回答

0
getGivenAns() 

返回的選項,如果選擇了第一個選項可以是0,將評估爲false,這裏的指數:

if (getGivenAns()) { 

如果一個選項被選中,所以才返回true。

而且

if (qtnNo <= qtnsSet.length) { 

爲真最後一個問題後,應該只是

if (qtnNo < qtnsSet.length) { 
相關問題