Тест на 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 пример

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

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

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

Тест на javascript с ответами и учетом времени: 89 комментариев

  1. Лиза

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

    1. Виталий Admin

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

  2. Геннадий

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

    1. Виталий Admin

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

        1. Виталий Admin

          Пожалуйста!

  3. Виктория

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

  4. Виктория

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

    1. Виталий Admin

      Да ничего, пожалуйста)

  5. Виталий

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

    1. Виталий Admin

      Здравствуйте, для этого вариант ответа (элемент массива data_array с индексом 5) должен иметь вид: 1#3#4 – где 1, 3 и 4 это правильные варианты ответа. Когда пользователь выбирает несколько ответов, нужно формировать из ответов строку вида 1#3#4 – соответственно сравнивать нужно строки.

  6. Олег

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

    1. Виталий Admin

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

      1. Олег

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

        1. Виталий Admin

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

          1. Виталий Admin

            Самый простой способ – это заменить массив вопросов и ответа, то есть этот код: 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-го теста ]; }

          2. Олег

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

          3. Виталий Admin

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

          4. Олег

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

          5. Виталий Admin

            Верно! ‘ + «Неверно! Правильный ответ: » + data_array[cur_answer][data_array[cur_answer][5]] + ‘

  7. Евгений

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

    1. Виталий Admin

      Какие все? В уроке 1 тест

  8. Владимир

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

    1. Виталий Admin

      Здравствуйте, для этого придется делать post или get запрос, передавая ответы в php скрипт, а в нем уже заносить эти ответы в базу данных.

  9. Владимир

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

    1. Виталий Admin

      Добрый день, для этого нужно добавить функцию (в самом начале 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-е и скрипт и все стили и само тело, то я теряюсь, куда мне стоит вставить эту конструкцию. Пыталась в разные места.Спасибо.

    1. Виталий Admin

      Просто добавьте в body стиль фона, то есть замените это: body{ font-family:verdana; color:#444; } На это: body{ font-family:verdana; color:#444; background: url(http://sergey-oganesyan.ru/wp-content/uploads/2017/01/test-na-javascript-s-otvetami.jpg); } Где http://sergey-oganesyan.ru/wp-content/uploads/2017/01/test-na-javascript-s-otvetami.jpg – это путь к фотографии, поставьте свой путь.

  11. Тимур

    как сделать так что бы варианты ответов были случайнами? например 4 вариянта ответа 1 правильный а 3 случайным образом появлялись Например Зимой и летом одним цветом Ёлка Башмаг Кот Собака а после обновления страницы Зимой и летом одним цветом компютер машина ёлка клешь и что бы вопросы были случайным образом то есть в начале теста скрипт определял какие вопросы будут случайным образом

    1. Виталий Admin

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

  12. Малик

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

    1. Виталий Admin

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

      1. Малик

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

        1. Виталий Admin

          Как вариант, вам можно подготовить файл, в котором будут строки вида: Первая строка: «Сколько сантиметров в метре?»,»10″,»1024″,»100″,»1000″,3 Вторая строка: «Перевод слова: Hello»,»Как дела?»,»Привет»,»Ты»,»Дом»,2 И так далее. PHP скрипт будет считывать в цикле строки, после того, как считает, эти строки нужно передать в Javascript и добавить к массиву data_array

          1. Малик

            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].”; }

          2. Малик

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

          3. Виталий Admin

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

  13. Катя

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

    1. Виталий Admin

      Добрый, добавьте в раздел с переменными массив, например: 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. Андрей

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

    1. Виталий

      Добрый, это именно тестом должно быть или вы просто такой выбор хотите реализовать?

  15. Салават

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

    1. Виталий

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

  16. Денис

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

    1. Виталий

      Добрый день, какой блок должен свернуться? Скрыть блок: document.getElementById(‘moy_block’).style.display=’none’; Показать блок: document.getElementById(‘moy_block’).style.display=’block’; Где moy_block – id нужного блока.

  17. Ильмир

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

    1. Виталий

      Добрый день, перенесите строчку: document.getElementById(‘end’).style.display=’inline’; и вставьте её перед строчкой: document.getElementById(‘time’).id = ‘stop’;

  18. Александр

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

    1. Виталий

      Пожалуйста, для этого вам нужно будет привести массив к виду: [«Вопрос»,»Ответ»] Вместо ответов добавить поле, например: Ну и сравнивать ответы можно, например, так: if( document.getElementById(«answer»).value == data_array[cur_answer][1]){ … } Это все в общих чертах.

  19. Денис

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

    1. Виталий

      Что вы имеете ввиду?

  20. Viktor

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

    1. Виталий

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

  21. Влад

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

    1. Виталий

      Не совсем ясен вопрос, опишите поподробнее.

  22. Павел

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

    1. Виталий

      Здравствуйте, просто создайте переменную, например, var nextTest = false; Если человек прошел на 100% первый тест, то выполните: nextTest = true; А второй тест оберните в такое условие: if( nextTest ){ //здесь код второго теста.. }

  23. Виталий

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

    1. Виталий

      Здравствуйте, так она и так выводится: “Неверно! Правильный ответ: ..”

  24. Тимур

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

    1. Виталий

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

  25. Вадим

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

    1. Виталий

      Хороший вопрос, подумаю как это лучше реализовать, напишу.

  26. Анастасия

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

    1. Виталий

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

      Неправильные ответы:

      ‘; Далее, после строчки: document.getElementById(‘result’).innerHTML=»Неверно! Правильный ответ: » + data_array[cur_answer][data_array[cur_answer][5]]; Добавьте строчку: wrongAnswers += ‘

      Вопрос: ‘ + data_array[cur_answer][0] + ‘/ Ваш ответ: ‘ + data_array[cur_answer][num] + ‘

      ‘; И в самом низу – “res” замените на – “res + wrongAnswers” В итоге после теста будут выводиться неверные ответы в виде: Вопрос: Перевод слова: Dog/ Ваш ответ: Кошка

  27. Борис

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

    1. Виталий

      Здравствуйте, 10 и более вопросов с ответами можно вывести просто с помощью html, а скриптом уже проверять ответы после нажатия на кнопку “Проверки”. Каждый из вопросов можно оформить так: Вопрос 1 Ответ 1 Ответ 2 Ответ 3 Ответ 4 — Вопрос 2 Ответ 1 Ответ 2 Ответ 3 Ответ 4 и т.д. В конце будет кнопка: Ну и в самой функции выполняйте что необходимо: function checkTest(){ //массив с правильными ответами //проверка правильного овтета } Это один из вариантов (самый простой), можно всю информацию выводить на страницу с помощью скрипта.

  28. Дмитрий

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

    1. Виталий

      Да, времени, к сожалению, не хватает всем ответить

  29. Дмитрий

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

  30. Тимур

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

    1. Виталий

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

  31. Тимур

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

    1. Виталий

      Добрый день, замените эту строку: percent + ‘%)
      ‘ + res; На этот код: percent + ‘%)
      ‘ + res; if(percent>70){ function timeoutRedirect() { location=»https://www.google.ru/»; } setTimeout(timeoutRedirect, 5000); } 5000 миллисекунд – это 5 мекунд

      1. Тимур

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

  32. Тимур

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

    1. Виталий

      Код для предыдущего комментария учитывает это

      1. Тимур

        Извините Виталий. Все заработало. Я Вас не правильно понял. СПАСИБО ОГРОМНОЕ!!!!

  33. Тимур

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

    1. Виталий

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

  34. Надя

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

  35. Надя

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

  36. Таня

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

  37. Иван

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

    1. Виталий

      Можно выводить номер текущего вопроса и их кол-во, для этого замените эту строку в 2-х местах: document.getElementById(‘question’).innerHTML=data_array[cur_answer][0] На эту: document.getElementById(‘question’).innerHTML=data_array[cur_answer][0] + ‘
      ‘ + (cur_answer+1) + ‘/’ + count_answer; И тогда под вопросом будет выводиться номер вопроса вида: 2/6

      1. Иван

        Спасибо, очень помогли. А возможно теперь выровнять этот: x/y по центру?

Обсуждение закрыто.