Делаю тест (код - ниже). Мне нужно, чтобы результат (количество набранных баллов) появлялся только после того, как человек ответит на все вопросы теста. В противном случае, вместо этого при нажатии на кнопку "Проверить результаты" в окошке была такая информация: "Извините, но Вы еще не ответили на все вопросы". Как это сделать? Подправьте, пожалуйста, код...
| Код | <script LANGUAGE="JavaScript"> // Заголовок страницы (h1) // Подзаголовок (h2) var subtitle = "Этот тест позволяет оценить Ваши знания"; // Это вопросы var questions=[ { text:"Делаете ли Вы необдуманные замечания или обвинения, о которых Вы после жалеете?", answers:["да", "нет"], correctAnswer: 1 }, { text:"В то время, когда другие начинают терять терпение, остаетесь ли Вы достаточно спокойным?", answers:["да", "нет"], correctAnswer: 0 }, { text:"Просматриваете ли Вы расписания движения поездов, телефонные справочники или словари ради удовольствия?", answers:["да", "нет"], correctAnswer: 0 } ]; var yourAns = new Array; var score = 0; function Engine(question, answer) {yourAns[question]=answer;} function Score(){ var answerText = "Результаты:\n";
for(var i = 0; i < yourAns.length; ++i){ var num = i+1; if(yourAns[i]!=questions[i].correctAnswer){ + "\n"; } else{ ++score; } } answerText=answerText+"\nКоличество набранных баллов: "+score+"\n"; alert(answerText); yourAns = new Array; score = 0; clearForm("quiz"); } function clearForm(name) { var f = document.forms[name]; for(var i = 0; i < f.elements.length; ++i) { if(f.elements[i].checked) f.elements[i].checked = false; } } </script> <FORM name="quiz"> <ol> <script> for(var q=0; q<questions.length; ++q) { var question = questions[q]; var idx = 1 + q; document.writeln('<li><span class="quest">' + question.text + '</span><br/>'); for(var i in question.answers) { document.writeln('<input type=radio name="q' + idx + '" value="' + i + '" onClick="Engine(' + q + ', this.value)">' + question.answers[i] + '<br/>'); } }
</script> </ol> <input type=button onClick="Score()" value="Проверить результаты"> </FORM>
|
|