diff options
Diffstat (limited to 'mult.js')
-rw-r--r-- | mult.js | 65 |
1 files changed, 65 insertions, 0 deletions
@@ -0,0 +1,65 @@ +var TABLE_SIZE = 12; + +var startDate, op1, op2, ans; + +var testFormEl = document.getElementById('test-form'); +var op1El = document.getElementById('op1'); +var op2El = document.getElementById('op2'); +var answerEl = document.getElementById('answer'); +var isCorrectEl = document.getElementById('is-correct'); +var correctEl = document.getElementById('correct'); +var incorrectEl = document.getElementById('incorrect'); +var correctAnswerEl = document.getElementById('correct-answer'); +var submitEl = document.getElementById('submit'); +var timerEl = document.getElementById('timer'); +var timeEl = document.getElementById('time'); + +function setUp() +{ + op1 = Math.round(Math.random() * (TABLE_SIZE-1) + 1); + op2 = Math.round(Math.random() * (TABLE_SIZE-1) + 1); + ans = op1 * op2; + + op1El.innerHTML = op1; + op2El.innerHTML = op2; + answerEl.value = ''; + correctAnswerEl.innerHTML = ans; + testFormEl.onsubmit = checkAnswer; + + submitEl.innerHTML = 'Check'; + timerEl.style.display = 'none'; + correctEl.style.display = 'none'; + incorrectEl.style.display = 'none'; + + answerEl.focus(); + + startDate = new Date(); +} + +function checkAnswer() { + var endDate = new Date(); + timeEl.innerHTML = ((endDate - startDate)/1000).toFixed(1); + timerEl.style.display = 'block'; + + if (answerEl.value == ans) { + correctEl.style.display = 'inline'; + incorrectEl.style.display = 'none'; + } else { + incorrectEl.style.display = 'inline'; + correctEl.style.display = 'none'; + } + + testFormEl.onsubmit = refresh; + submitEl.innerHTML = 'Try another'; + answerEl.focus(); + + return false; +} + +function refresh() { + setUp(); + + return false; +} + +setUp(); |