Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [PHP][JavaScript] Вопрос по поводу кода теста...


Автор: bubkanet 29.12.2011, 06:02
Делаю тест (код - ниже). Мне нужно, чтобы результат (количество набранных баллов) появлялся только после того, как человек ответит на все вопросы теста. В противном случае, вместо этого при нажатии на кнопку "Проверить результаты" в окошке была такая информация: "Извините, но Вы еще не ответили на все вопросы". Как это сделать? Подправьте, пожалуйста, код...



Код

<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>


Автор: Rodman 29.12.2011, 14:18

M
Rodman
Модератор: Название темы должно отражать ее суть!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)