Forum Moderators: open
var correctAnswer = document.getElementById(correct).value; var correct = eval("'correct" + questionNumber + "'"); Timestamp: 5/19/2012 10:31:11 AM
Error: document.getElementById(questionNumber) is null
Source File: http://example.com/wp-content/themes/theme/includes/results.js
Line: 14
function getRadioValue(theRadioGroup){
for (var i = 0; i < document.getElementsByName(theRadioGroup).length; i++){
if (document.getElementsByName(theRadioGroup)[i].checked){
var chosenAnswer = document.getElementsByName(theRadioGroup)[i].value; //get the student's response value
var slimChosenAnswer = chosenAnswer.substr(0,1); //trim it down to just the first letter
if (slimChosenAnswer == "A") { convertdChosenAnswer = "1" } else if (slimChosenAnswer == "B") { convertdChosenAnswer = "2" } else if (slimChosenAnswer == "C") { convertdChosenAnswer = "3" } else if (slimChosenAnswer == "D") { convertdChosenAnswer = "4" } //convert the letter response into a number.
return convertdChosenAnswer;//return the student's response as a number
}
}
}
function checkAnswer(questionNumber,convertdChosenAnswer) {
var correct = eval("'correct" + questionNumber + "'");//Get the correct answer using the questionNumber variable.
var correctAnswer = document.getElementById(correct).value; //pull the correct answer value from the hidden input for this question
if (convertdChosenAnswer == correctAnswer) {//Compare the checked value against the correct answer,
str = "<span class='yes'>✔</span>"; // insert the 'Heavy Checkmark'
} else {
str = "<span class='no'>✘</span>";//else insert 'Heavy Ballot X'.
}
return str;
}
function collectResults() {
var str = "<p class='aligncenter'><button onclick='collectResults()' class='a_button'>Update</button></p>";//change the button to "update"
str += '<p>Your answers were:</p>';
var elem = document.getElementById('the_questions').elements;
for(var i = 0; i < elem.length; i++) { //loop the inputs
if(elem[i].type == 'hidden' && elem[i].name == 'the_number'){ //if it's the question number input, then
var questionNumber = elem[i].value; //get the question number
var theRadioGroup = eval("'group" + questionNumber + "'"); //guide the script to the right radio group
var convertdChosenAnswer = getRadioValue(theRadioGroup);//get the student's response from the radio group
var checkt = checkAnswer(questionNumber,convertdChosenAnswer); //check the student's answer against the correct answer
str += "<p class='answer_item'>" + checkt + "<b>" + elem[i].value + ".</b>  "; //insert the check or ex
} else if (elem[i].type == 'textarea') {
str += elem[i].value +"</p>";
} else if (elem[i].type == 'radio') {
if (elem[i].checked == true) {
str += elem[i].value + "</p>";
}
}
}
str += "<p class='aligncenter'><button onClick='printSpecial();return false;' class='a_button'>Print Your Answers</button></p>";
document.getElementById('the_results').innerHTML = str; //dump the code into the results div.
}