By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,760 Members | 955 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,760 IT Pros & Developers. It's quick & easy.

Looping Issue w/ Basic Quiz...

P: n/a
Hello.

This is a basic quiz. Only about 3 questions. I'm having issue with the
answer key which stays on a certain value regardless of acknowledging that
you have the correct answer for the first and moving on to the next answer.

Here's the code:

Expand|Select|Wrap|Line Numbers
  1. <html><head><title>Problem7</title>
  2. <script type="text/javascript">
  3.  
  4. function attachHandlers()
  5. {
  6. var my_button = document.getElementById("sec_button");
  7. my_button.onclick = checkAnswer;
  8. }
  9.  
  10. function firstQuestion()
  11. {
  12. var the_box = document.getElementById("questions");
  13. var first_ques = "what's the value of 5+4?";
  14. the_stat = document.createTextNode(first_ques);
  15. the_box.appendChild(the_stat);
  16. }
  17.  
  18. function checkAnswer()
  19. {
  20. var the_questions = new Array();
  21. the_questions[1] = "what's the value of 7+4?";
  22. the_questions[2] = "what's the value of 9+6?";
  23. the_questions[3] = "what's the value of 10+6?";
  24.  
  25.  
  26. var the_key = new Array();
  27. the_key[0] = "9";
  28. the_key[1] = "11";
  29. the_key[2] = "15";
  30. the_key[3] = "16";
  31.  
  32. var the_field = document.getElementsByTagName("input")[0];
  33.  
  34. var i=0;
  35. while(i < the_key.length)
  36. {
  37.  
  38. if (the_field.value==the_key[i])
  39. {
  40. alert("Very Good");
  41. i++;
  42. }
  43.  
  44. else
  45. {
  46. alert("Please try again");
  47. return
  48. }
  49.  
  50. the_field.value="";
  51. var the_div = document.getElementById("questions");
  52. the_div.innerHTML="";
  53. var text_node = document.createTextNode(the_questions[i]);
  54. the_div.appendChild(text_node);
  55. }
  56.  
  57. }
  58. </script></head>
  59. <body onLoad="attachHandlers(); firstQuestion();">
  60. <div id = "questions"></div>
  61. <input type="text" id="answerfield" size="20"><br>
  62. <input type="button" value="check" id="sec_button">
  63. </body>
  64. </html>
  65.  
The answer key is staying on one value then checking it without me hitting
the button....

I know it's probably a simple step missing, but I can't seem to find it.

--
Message posted via WebmasterKB.com
http://www.webmasterkb.com/Uwe/Forum...cript/200808/1

Aug 27 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
SAM
LayneMitch via WebmasterKB.com a écrit :
>
Here's the code:
(snip) (see previous post)
The answer key is staying on one value then checking it without me hitting
the button....
yes the 'while' continues its job
I know it's probably a simple step missing, but I can't seem to find it.
without a reference (globale one) I don't see how to do.

There is how I'ld do :

<html><head><title>Problem7</title>
<script type="text/javascript">

var i=0;
var the_questions = new Array();
the_questions[0] = "what's the value of 5+4?";
the_questions[1] = "what's the value of 7+4?";
the_questions[2] = "what's the value of 9+6?";
the_questions[3] = "what's the value of 10+6?";

var the_key = new Array();
the_key[0] = "9";
the_key[1] = "11";
the_key[2] = "15";
the_key[3] = "16";

function attachHandlers()
{
var my_form = document.getElementById("quiz");
my_form.onsubmit = function() { return checkAnswer(); };
}

function Question()
{
var the_field = document.getElementById("answerfield");
the_field.value="";
var the_div = document.getElementById("questions");
the_div.innerHTML="";
var text_node = document.createTextNode(the_questions[i]);
the_div.appendChild(text_node);
}

function checkAnswer()
{
var the_field = document.getElementById("answerfield");

if (the_field.value==the_key[i])
{
alert("Very Good");
i++;
if( i<the_key.length ) Question();
}
else
{
alert("Please try again");
}

the_field.focus();
the_field.select();
return false;
}
</script></head>
<body onload="attachHandlers(); Question();">
<p id = "questions"></p>
<form id="quiz" action="#" >
<input type="text" id="answerfield" size="20"><br>
hit key [Enter] or this button: <input type="submit" value="check">
</form></body></html>

--
sm
Aug 27 '08 #2

P: n/a
SAM wrote:
>LayneMitch via WebmasterKB.com a écrit :
Appreciate the response...the problem is solved. Thanks once again.

--
Message posted via http://www.webmasterkb.com

Aug 28 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.