Как сделать тест на javascript с ответами?



Приветствую вас дорогие друзья! В этом уроке я покажу, как создать простой тест на javascript, в котором будет учитываться время, а также, пользователю будет даваться оценка!

Как сделать тест на javascript с ответами?

Я уже публиковал урок – как сделать тест, в том уроке можно выбрать ответ, но после выбора вы не узнаете правильный ответ, даже после прохождения всего теста.

 

Что умеет тест?

В этом уроке мы создадим тест со следующими возможностями:

  • Можно будет выбрать вариант ответа (1 из 4);
  • После выбора ответа, пользователь будет знать – правильно ли он ответил на данный вопрос;
  • После прохождения теста, будет выведено количество и процент правильных ответов;
  • Будет засекаться время, потраченное на прохождение теста;
  • После теста, будет выводиться оценка (плохо, хорошо, отлично).

Как и в других подобных уроках по javascript, в самом низу будет демо пример и возможность скачать все исходный файлы урока!

Итак, давайте начнем!

 

Хранение данных

В первую очередь нам нужно подумать о том, где мы будет хранить следующие данные:



  1. вопросы
  2. варианты ответов
  3. правильные ответы

Самый идеальный вариант – это хранить все данные в одном массиве, это удобно тем, что для добавления (удаления, изменения) вопроса достаточно сделать правку в одном месте!

Будем использовать двумерный массив, индекс этого массива будет определять номер вопроса, а каждый элемент массива – это еще один массив, содержащий в себе вопрос, варианты ответов и номер правильного ответа (всего 6 элементов).

Давайте посмотрим, как это будет выглядеть:

	//Массив вопросов и ответа
	var data_array = [
	  ["Сколько сантиметров в метре?","10","1024","100","1000",3],
	  ["Перевод слова: Hello","Как дела?","Привет","Ты","Дом",2],
	  ["Перевод слова: Dog","Собака","Кошка","Дерево","Сосиска",1],
	  ["Сколько месяцев в году?","10","11","12","13",3],
	  ["Перевод слова: Tree","Три","Собака","Дерево","Дом",3],
	  ["Перевод слова: Wall","Стена","Дом","Башня","Война",1],
	];

Например, для того, чтобы узнать номер правильного ответа для 3 вопроса (слева направо), нужно написать такой код:

data_array[2][5];  //1

Т.е. в вопросе, где нужно перевести слово “Dog”, правильный ответ стоит на первом месте.

Для того, чтобы узнать правильный ответ для 3 вопроса (слева направо), нужно написать такой код:

data_array[2][data_array[2][5]];  //Собака

 

Конечный вариант кода

Теперь приведу js код целиком и поясню основные моменты:


	//Массив вопросов и ответа
	var data_array = [
	  ["Сколько сантиметров в метре?","10","1024","100","1000",3],
	  ["Перевод слова: Hello","Как дела?","Привет","Ты","Дом",2],
	  ["Перевод слова: Dog","Собака","Кошка","Дерево","Сосиска",1],
	  ["Сколько месяцев в году?","10","11","12","13",3],
	  ["Перевод слова: Tree","Три","Собака","Дерево","Дом",3],
	  ["Перевод слова: Wall","Стена","Дом","Башня","Война",1],
	];

	var plus = 0;
	var time = 0;
	var cur_answer = 0;
	var count_answer = data_array.length;
	
	function sec() {
		time++;	
		document.getElementById('time').innerHTML='Затрачено времени: ' + time + ' сек';
	}
	
	function check(num){

		if(num == 0){ 
		
			document.getElementById('option1').style.display='block';
			document.getElementById('option2').style.display='block';
			document.getElementById('option3').style.display='block';
			document.getElementById('option4').style.display='block';
			document.getElementById('question').style.display='block';

			document.getElementById('option1').innerHTML=data_array[cur_answer][1];
			document.getElementById('option2').innerHTML=data_array[cur_answer][2];
			document.getElementById('option3').innerHTML=data_array[cur_answer][3];
			document.getElementById('option4').innerHTML=data_array[cur_answer][4];
			document.getElementById('question').innerHTML=data_array[cur_answer][0];
			
			document.getElementById('start').style.display='none';
			document.getElementById('end').style.display='inline';
			
			var intervalID = setInterval(sec, 1000);
			
		}else{

			if( num ==  data_array[cur_answer][5]){
				plus++;
				document.getElementById('result').innerHTML='Верно!';
			}else{
				document.getElementById('result').innerHTML="Неверно! Правильный ответ: " + data_array[cur_answer][data_array[cur_answer][5]];
			}
				
			cur_answer++;
			if(cur_answer < count_answer){
			
				document.getElementById('option1').innerHTML=data_array[cur_answer][1];
				document.getElementById('option2').innerHTML=data_array[cur_answer][2];
				document.getElementById('option3').innerHTML=data_array[cur_answer][3];
				document.getElementById('option4').innerHTML=data_array[cur_answer][4];
				document.getElementById('question').innerHTML=data_array[cur_answer][0];
				
			}else{
				
				document.getElementById('time').id = 'stop';
				document.getElementById('option1').style.display='none';
				document.getElementById('option2').style.display='none';
				document.getElementById('option3').style.display='none';
				document.getElementById('option4').style.display='none';
				document.getElementById('question').style.display='none';
				document.getElementById('end').style.display='inline';
				
				var percent =  Math.round(plus/count_answer*100);				
				var res = 'Плохо!';
				if(percent>70) res = 'Хорошо!';
				if(percent==100) res = 'Отлично!';
				
				document.getElementById('result').innerHTML='Правильных ответов: ' + plus + ' из ' + count_answer + ' (' + percent + '%)<br>' + res;
			}
		}
	}

Для учета времени (в секундах) будет использоваться функция – “sec”, эта функция увеличивает переменную time на 1 и выводит новое значение на экран.

Для того, чтобы время “шло”, используется интервал, установленный на одну секунду – этот интервал и запускает функцию sec (сразу после начала теста).

В переменной “plus” мы храним количество правильных ответов, по умолчанию в этой переменной хранится 0, а при каждом правильном ответе эта переменная увеличивается соответственно на единицу.

Для вычисления процентного показателя (переменная percent) правильных ответов, просто делим кол-во правильных ответ на общее кол-во вопросов и умножаем это значение на 100.

Для определения общего кол-ва вопросов, просто определяем размер массива с данными, это означает, что при добавлении или удалении вопросов из массива, больше ничего изменять не нужно.

Также, после прохождения теста, пользователю выставляется оценка – в зависимости от процентного показателя правильных ответов (percent):

  • по умолчанию оценка: плохо!
  • если percent больше 80%: хорошо!
  • если percent равен 100%: отлично!

В принципе, это основные моменты, на которые стоит обратить внимание, эти значения (и условия) вы сможете изменить под свои нужны.

Теперь вы можете проверить тест на реальном примере, а также скачать все исходные файлы данного урока (все в одном файле)!

Demo пример

Скачать исходники

На этом у меня все, если возникнут вопросы, вы можете задать их в комментариях, желаю вам удачи, пока!

Если вам нужна помощь в создании какого-либо функционала, сайта, сервиса, тестов или калькуляторов, то готов помочь, подробнее на странице услуг.

Похожие публикации:

  1. Лиза пишет:

    Можно ли как-то сделать, чтобы в вопросе содержалось изображение?

    • Да можно, для этого достаточно добавить нужную картинку перед нужным вопросом в массиве data_array (Массив вопросов и ответа), например:

      	//Массив вопросов и ответа
      	var data_array = [
      	  ["<img src='https://sergey-oganesyan.ru/wp-content/uploads/2017/04/landscape_hd_t1.jpg'><br>Сколько сантиметров в метре?","10","1024","100","1000",3],
      	  ["Перевод слова: Hello","Как дела?","Привет","Ты","Дом",2],
      	  ["Перевод слова: Dog","Собака","Кошка","Дерево","Сосиска",1],
      	  ["Сколько месяцев в году?","10","11","12","13",3],
      	  ["Перевод слова: Tree","Три","Собака","Дерево","Дом",3],
      	  ["Перевод слова: Wall","Стена","Дом","Башня","Война",1],
      	];
      

      Как видите из кода, перед нужным вопросом я добавил это:

      <img src='https://sergey-oganesyan.ru/wp-content/uploads/2017/04/landscape_hd_t1.jpg'><br>
      

      Картинка и тег br для переноса строки.

  2. Геннадий пишет:

    Здраствуйте. А как можно добавить рамку вокруг изображения которое содержится в вопросе?

  3. Виктория пишет:

    Добрый день, хотела скачать исходники а их там нет. Только страница на которой сам тест размещен. Можно ли все же попросить у вас файлы с кодом.

  4. Виктория пишет:

    Благодарю, все есть, это я неправильно смотрела))) Извините за беспокойство

  5. Сергей пишет:

    Здравствуйте, а как сделать так чтобы вариантов ответа было несколько, помогите пожалуйста!

    • Здравствуйте, для этого вариант ответа (элемент массива data_array с индексом 5) должен иметь вид:

      1#3#4 – где 1, 3 и 4 это правильные варианты ответа.

      Когда пользователь выбирает несколько ответов, нужно формировать из ответов строку вида 1#3#4 – соответственно сравнивать нужно строки.

  6. Олег пишет:

    как сделать чтобы было несколько тестов ?

    • На одной странице?

      • Олег пишет:

        вот допустим есть 3 теста и когда начинаешь решать его чтобы рандомомом выбирало какой решать

        • Чем тесты друг от друга будут отличаться? Просто вопросами?

          • Олег пишет:

            да

            • Самый простой способ – это заменить массив вопросов и ответа, то есть этот код:

              var data_array = [
                ["Сколько сантиметров в метре?","10","1024","100","1000",3],
                ["Перевод слова: Hello","Как дела?","Привет","Ты","Дом",2],
                ["Перевод слова: Dog","Собака","Кошка","Дерево","Сосиска",1],
                ["Сколько месяцев в году?","10","11","12","13",3],
                ["Перевод слова: Tree","Три","Собака","Дерево","Дом",3],
                ["Перевод слова: Wall","Стена","Дом","Башня","Война",1],
              ];
              

              Заменить на этот:

              var randomNum = Math.round((Math.random() * (3 - 1) + 1));
              
              if( randomNum == 1 ){
              
              	var data_array = [
              		//Вопросы и ответы для 1-го теста
              	];
              	
              }else if( randomNum == 2 ){
              
              	var data_array = [
              		//Вопросы и ответы для 2-го теста
              	];
              	
              }else{
              
              	var data_array = [
              		//Вопросы и ответы для 3-го теста
              	];
              	
              }
              
              • Олег пишет:

                оооооо , спасибо большое
                И спасибо за тест , долго не мог найти , очень понравился , как раз для моего курсового )
                Спасибо )

                • Пожалуйста, удачи!

                  • Олег пишет:

                    Спасибо
                    вот еще такой вопрос
                    вот когда отвечаешь на вопрос , то сразу выбивает верно или неверно
                    можно как-нибудь сделать цвет , вот если я ответил верно то зелены , а если не верно то красный ??
                    У меня только получилось чтобы они были одного цвета

  7. Евгений пишет:

    Как сделать чтобы все тесты отображались на 1 странице сразу

  8. Владимир пишет:

    Здравствуйте, а как можно заставить ответы заноситься в базу данных?

  9. Владимир пишет:

    Здравствуйте Сергей, а как сделать так что бы и вопросы и ответы для каждого вопроса были в разноброс (т.е. на угад какой попало=random), не обязательно всё отмечалось по полочкам, надо путать обучающихся что бы они запоминали сам ответ, а не вопросы по порядку. Заранее благодарю!

    • Добрый день, для этого нужно добавить функцию (в самом начале javascript кода), которая перемешивает массив, и вызвать эту функцию после массива вопросов и ответов, то есть код должен выглядеть так:

          //функция, которая перемешивает массив
          function mix(mixArray) {
            var index, valueIndex; 
            for (var i=0; i<=mixArray.length-1; i++) {
              index = Math.floor(Math.random()*i);
              valueIndex = mixArray[index];
              mixArray[index] = mixArray[i];
              mixArray[i] = valueIndex;
            }
            return mixArray;
          }
      
      //Здесь идет массив вопросов и ответа
      
      mix(data_array); //перемешиваем массив
      
      

      Остальной код остается без изменений.

  10. Симона пишет:

    Скажите пожалуйста, как я могу на задний план разместить фотографию? Мне известна такая штука ” . Но так как у вас в HTML-е и скрипт и все стили и само тело, то я теряюсь, куда мне стоит вставить эту конструкцию. Пыталась в разные места.Спасибо.

  11. Тимур пишет:

    как сделать так что бы варианты ответов были случайнами?
    например
    4 вариянта ответа
    1 правильный
    а 3 случайным образом появлялись

    Например

    Зимой и летом одним цветом

    Ёлка
    Башмаг
    Кот
    Собака

    а после обновления страницы

    Зимой и летом одним цветом

    компютер
    машина
    ёлка
    клешь

    и что бы вопросы были случайным образом то есть в начале теста скрипт определял какие вопросы будут случайным образом

    • Чтобы вопросы были в случайном порядке – выше уже отвечал, функция mix, для случайных вариантов, вам нужно перестроить массив вопросов и ответа так, чтобы правильный ответ не зависел от порядка элементов в массиве, тогда можно будет перемешать массив вариантов с помощью все той же функции mix.

      P.S. как 1 из вариантов.

  12. Малик пишет:

    Спасибо за урок Сергей! У меня все же один вопросик! Можно ли с помощью этого скрипта, массово импортировать вопросы из документов. Например из .txt файлов и т.д.

    • Да, можно в цикле считывать строки любого файла через PHP и добавлять в JavaScript массив вопросов и ответов (data_array)

      • Малик пишет:

        Тоест через PHP можно из любого .txt документа, вопросы а также их ответы поставить так как указан в данной скрипте. Например, на документе test1.txt есть следующие записи:
        Первый президент США?
        Дж. Вашингтон
        Барак Обама
        Авраам Линкольн
        Кеннеди
        Дональд Трамп

        Так вот, php-скрипт, выводит его так: “Первый президент США?”, “Дж. Вашингтон”, “Барак Обама”, “Авраам Линкольн “, “Кеннеди”, “Дональд Трамп”, “1” ??

        • Как вариант, вам можно подготовить файл, в котором будут строки вида:

          Первая строка: "Сколько сантиметров в метре?","10","1024","100","1000",3
          Вторая строка: "Перевод слова: Hello","Как дела?","Привет","Ты","Дом",2
          

          И так далее.

          PHP скрипт будет считывать в цикле строки, после того, как считает, эти строки нужно передать в Javascript и добавить к массиву data_array

          • Малик пишет:

            foreach($data AS &$value){
            array_pop($value);
            foreach($value AS &$value2){ // этим циклом мы убираем перенос строки в конце каждого элемента массива
            $value2 = str_replace(“\r\n”, “”, $value2);
            }
            echo $value[0].’, ‘.$value[1].’, ‘.$value[2].’, ‘.$value[3].’, ‘.$value[4].’, ‘.$value[5].”;

            }

          • Малик пишет:

            Я вот где то поорыл, но вот такая проблема! Можно ли эти массивы выводит как то на кавычках? Чтобы симол/знак ( ” ” ) автоматический ставились после выведение данных.

  13. Катя пишет:

    Добрый день! а как можно посчитать кол-во каждого ответа? например: ответов 1 -2 шт, ответов 2-1шт и т.д?

    • Добрый, добавьте в раздел с переменными массив, например:

      var count_answer_array = [0, 0, 0, 0, 0];
      

      А в коде, перед:

      if( num ==  data_array[cur_answer][5]){
      

      Добавьте

      count_answer_array[num]++;
      

      В итоге в массиве будет храниться кол-во каждого ответа:

      count_answer_array[1] - кол-во ответов 1
      count_answer_array[2] - кол-во ответов 2
      и т.д.
      
      
  14. Андрей пишет:

    Добрый день! Может не совсем по данному тесту вопрос. Заранее извиняйте! Подскажите как сделать зависимость ответов? Понятнее на примере:
    Вопрос: Что сделать с…?
    И варианты ответов
    Если допустим Топор-рубить,кидать. Если Пила-пилить, рубить. И так далее.
    Чтобы были вложенные ответы в строчку и при выборе первого пункта менялись варианты во втором поле и т.д.
    Заранее спасибо!

  15. Салават пишет:

    Как сделать, чтобы результаты сохранялись в результаты тестирования в текстовом файле

    • Сергей пишет:

      Для этого уже нужен серверный язык, например, php, можно сделать 1 ajax запрос, отправив результат, а там уже записать его в файл

  16. Денис пишет:

    Добрый день! Может не совсем по теме, но как сделать чтобы по окончанию теста блок сворачивался и открывался другой. Заранее спасибо!!!

    • Сергей пишет:

      Добрый день, какой блок должен свернуться?

      Скрыть блок:

      document.getElementById('moy_block').style.display='none';

      Показать блок:

      document.getElementById('moy_block').style.display='block';

      Где moy_block – id нужного блока.

  17. Ильмир пишет:

    Здравствуйте. Как сделать так, чтобы кнопка начать сначала появилось только после завершения теста

    • Сергей пишет:

      Добрый день, перенесите строчку:

      document.getElementById('end').style.display='inline';

      и вставьте её перед строчкой:

      document.getElementById('time').id = 'stop';
  18. Александр пишет:

    Огромное спасибо за скрипт!
    А можно ли его переделать так, чтобы вместо вариантов ответа было поле для ввода?

    • Сергей пишет:

      Пожалуйста, для этого вам нужно будет привести массив к виду:

      ["Вопрос","Ответ"]

      Вместо ответов добавить поле, например:

       <inpu type="text" id="answer"> 

      Ну и сравнивать ответы можно, например, так:

      if( document.getElementById("answer").value ==  data_array[cur_answer][1]){ ... }

      Это все в общих чертах.

  19. Денис пишет:

    Подскажите как перенести этот код в отдельный файл чтобы он не был в html

  20. Viktor пишет:

    Подскажите как в этот тест добавить выбор вначале тестируемых людей а в конце теста вылазило имя прошедшего тест?

    • Сергей пишет:

      Для этого нужно создать базу данных (либо хранить список людей в файле) и обрабатывать уже с помощью какого-нибудь серверного языка, например, php

  21. Влад пишет:

    Подскажите как сделать так, чтобы можно было добавить вопросы с выбором правильной последовательности ответов.

  22. Павел пишет:

    Здравствуйте! Подскажите пожалуйста,как сделать так: Например у меня на странице 2 и более тестов ,они идут друг за другом ,и чтобы попасть в следующий ,нужно пройти предыдущий на 100% , а если он не пройден,то тест будет недоступен.?

    • Сергей пишет:

      Здравствуйте, просто создайте переменную, например,

      var nextTest = false;

      Если человек прошел на 100% первый тест, то выполните:

      nextTest  = true;

      А второй тест оберните в такое условие:

      if( nextTest  ){
      
       //здесь код второго теста..
      
      } 
  23. Виталий пишет:

    Здравствуйте,как сделать чтобы после неправильного выбора выводилась подсказка!?

  24. Тимур пишет:

    Здраствуйте , помогит пжл как сделать несколько вариантов ответа, все комментарии прочел не нашел

    • Сергей пишет:

      Здравствуйте, это уже совершенно другой тест, проще написать с 0, чем данный переделывать.

      Будет время, возможно напишу такой урок, пока могу лишь подсказать, что в качестве ответов нужно будет использовать input типа checkbox, а ответ хранить в виде цифр правильных ответов, разделенных, например, решеткой #

  25. Вадим пишет:

    Как рандомизировать варианты ответов с помощью функции mix (сделал все варианты ответов на 1, но как сделать чтобы они перемешивались?) можно пример на исходнике?

  26. Анастасия пишет:

    Здравствуйте, а как сделать вывод неправильных ответов после прохождения теста?

    • Сергей пишет:

      Здравствуйте, создайте переменную, например:

      var wrongAnswer = '<p>Неправильные ответы:<p>';

      Далее, после строчки:

      document.getElementById('result').innerHTML="Неверно! Правильный ответ: " + data_array[cur_answer][data_array[cur_answer][5]];

      Добавьте строчку:

      wrongAnswers += '<p>Вопрос: ' + data_array[cur_answer][0] + '/ Ваш ответ: ' + data_array[cur_answer][num] + '</p>';

      И в самом низу – “res” замените на – “res + wrongAnswers”

      В итоге после теста будут выводиться неверные ответы в виде:

      Вопрос: Перевод слова: Dog/ Ваш ответ: Кошка

  27. Борис пишет:

    Здравствуйте. Можно ли сделать следующее? Вывести на страницу 10 илиболее вопросов с вариантами ответов, затем выбрать некоторые вопросы например 2, 5, 6 и 10. Нажать на кнопку “правильные ответы” после чего на стианице остаются только выбранные вопросы с правильными вариантами ответов.

    • Сергей пишет:

      Здравствуйте, 10 и более вопросов с ответами можно вывести просто с помощью html, а скриптом уже проверять ответы после нажатия на кнопку “Проверки”.

      Каждый из вопросов можно оформить так:

      Вопрос 1
      
      <input type="radio" name="answer_1">Ответ 1
      <input type="radio" name="answer_1">Ответ 2
      <input type="radio" name="answer_1">Ответ 3
      <input type="radio" name="answer_1">Ответ 4
      
      ---
      
      Вопрос 2
      
      <input type="radio" name="answer_2">Ответ 1
      <input type="radio" name="answer_2">Ответ 2
      <input type="radio" name="answer_2">Ответ 3
      <input type="radio" name="answer_2">Ответ 4
      

      и т.д.

      В конце будет кнопка:

      <button onclick="checkTest()">Проверить</button>

      Ну и в самой функции выполняйте что необходимо:

      function checkTest(){
      
      	//массив с правильными ответами
      	
      	//проверка правильного овтета
      }
      

      Это один из вариантов (самый простой), можно всю информацию выводить на страницу с помощью скрипта.

  28. Дмитрий пишет:

    Здравствуйте! Что-то ответов на последние вопросы пока не видно, но попробую спросить. Можно ли сделать так, чтобы учитывалось время прохождения теста, т. е. после его окончания не уложившимся в определенное время выводилось сообщение типа: “Необходимо улучшить время прохождения”?

  29. Дмитрий пишет:

    Извините за беспокойство: сам разобрался, переменная time.

  30. Тимур пишет:

    Доброе время суток!
    Нарвался на Ваш сайт очень понравился. Все грамотно и понятно расписано. Вот решил изучить JavaScript. Сын все время просит поиграть компьютер, но не хочит делать домашнее задание на каникулах. Я конечно в его возрасте тоже бы не делал тем более в его время все доступно. Это в наше время компьютер был на вес золото. И у меня возникла такая задача. Как только он за хочет открыть оперу чтоб открывалось страница о прохождении тестов. Потом нажимает кнопку перейти к тестам но чтоб в обработчике кнопки была проверка по дате и страницы. И перебрасывала на страницу. Допустим сегодня 7 число переброс на 7 страницу или 31 число на 31 страницу.
    Заранее благодарен!!!

    • Сергей пишет:

      Добрый день, просто создайте ярлык на рабочем столе, который будет открывать файл, например, test.html – в этом файле просто определите сегодняшнюю дату и перенаправьте пользователя на нужный тест, например, так:

      location="test5.html";
  31. Тимур пишет:

    доброе время суток!
    Скажите пожалуйста как в вашем примере сделать так, если тест прошел на хорошо или отлично то через 5 секунд переходил на другую страницу ну например google.ru.
    Заранее благодарен!!!

    • Сергей пишет:

      Добрый день, замените эту строку:

      percent + '%)<br>' + res;

      На этот код:

      percent + '%)<br>' + res;
      
      if(percent>70){
      	function timeoutRedirect() {
      		location="https://www.google.ru/";
      	}
      
      	setTimeout(timeoutRedirect, 5000);
      }
      

      5000 миллисекунд – это 5 мекунд

      • Тимур пишет:

        Здравствуйте. Пытаюсь поставить ваш код у меня не срабатывает к кнопка приступить к тестам.

  32. Тимур пишет:

    Извините забыл добавить. Если тест сдал плохо то оставался на этой же странице.

  33. Тимур пишет:

    Сергей извините а не подскажите как после прохождения теста запустить ярлык на рабочем столе.

    • Сергей пишет:

      Так вот выше, вместо гугл поставьте ссылку на другой тест:

      location=”ссылка на другой тест”;

  34. Надя пишет:

    Здравствуйте, спасибо за Ваши классные статьи :)
    Подскажите, пожалуйста, как сделать так, чтобы при неправильном ответе, высвечивался тот же список вопросов и ответов, но выбранный ответ был красным, а правильный зеленым. То есть,у вас в примере, при неправильном ответе комментарий появляется уже на новом вопросе, а как это сделать с сохранением на странице старого, а потом перейти к новому?

  35. Надя пишет:

    Здравствуйте! Ещё вопросик :) Вот, если задать, допустим переменной time значение 60 и пустить в обратном порядке путем изменения в функции sec time++ на time=time-1
    как сделать так, чтобы при достижении time значения 0, тест прерывался и выводилось сообщение в духе “Время вышло!”

  36. Таня пишет:

    Здравствуйте, подскажите как сделать, чтобы были стрелки назад и вперед для переключения вопросов и можно было пропускать вопрос?

  37. Иван пишет:

    У меня вопрос. Можно ли пронумеровать вопросы, если я перемешивают массив? Что бы понимать сколько уже прошёл, и сколько ещё осталось.

    • Сергей пишет:

      Можно выводить номер текущего вопроса и их кол-во, для этого замените эту строку в 2-х местах:

      document.getElementById('question').innerHTML=data_array[cur_answer][0]

      На эту:

      document.getElementById('question').innerHTML=data_array[cur_answer][0] + '<br>' + (cur_answer+1) + '/' + count_answer;

      И тогда под вопросом будет выводиться номер вопроса вида: 2/6

  38. Никита пишет:

    Вопрос,можно ли добавить кнопки социальных сетей чтобы итоги теста можно было публиковать в соц. сетях, или для этого база нужна ?

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*Для публикации кода, заключите его в теги вида: [code] здесь ваш код [/code]