Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Создать тест на JavaScript для сайта (https://javascript.ru/forum/dom-window/72133-sozdat-test-na-javascript-dlya-sajjta.html)

usit46 10.01.2018 20:12

Создать тест на JavaScript для сайта
 
Вложений: 1
Здравствуйте. Подскажите пожалуйста, как сделать тест для сайта на javascript: тест содержит 20 вопросов, у каждого вопроса 4 варианта ответа, каждому ответу присваивается некоторое количество баллов, результат (уровень депрессии) зависит от суммы этих набранных баллов.

1. Я чувствую печаль и подавленность
Редко
Иногда
Часто
Постоянно

...

20. Я чувствую беспричинную усталость
Редко
Иногда
Часто
Постоянно

Под тестом будет кнопка "Узнать результаты". При нажатии на эту кнопку программа должна посчитать суммарный балл и вывести на экран один из четырёх ответов:
1) от 20 до 49 баллов – Норма
2) от 50 до 59 баллов – Легкое депрессивное расстройство
3) от 60 до 69 баллов – Депрессивное расстройство средней степени тяжести
4) от 70 до 80 баллов – Депрессивное расстройство тяжелой степени

Буду очень благодарен Вам, если поможете сделать этот тест.

рони 10.01.2018 20:55

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

Dilettante_Pro 11.01.2018 11:47

Набросок
<div id="quest"></div>
<select id = "answ">
   <option disabled selected>Выберите ответ</option>
   <option value= "1">Редко</option>
   <option value= "2">Иногда</option>
   <option value= "3">Часто</option>
   <option value= "4">Постоянно</option>
</select>
<div id="res"></div>
<script>
var question = ["Я чувствую печаль и подавленность",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Вопрос",
"Я чувствую беспричинную усталость"],
      result = 0,
      i = 0;
quest.innerHTML = (i + 1) + " " + question[i];
      
answ.onchange = function() { 
   result += +answ.value; 
   if( i < question.length - 1) {
        answ.options[answ.options.selectedIndex].setAttribute("selected","");
        i++;
        quest.innerHTML = (i + 1) + " " + question[i];
        answ.options[0].setAttribute("selected","selected");
        answ.value = answ.options[0].text;
   }
   else  {
       if(result >= 20)    res.innerHTML = result + " - Норма";
       if(result >= 50)    res.innerHTML = result + " - Легкое депрессивное расстройство";
       if(result >= 60)    res.innerHTML = result + " - Депрессивное расстройство средней степени тяжести";
       if(result >= 70)    res.innerHTML = result + " - Депрессивное расстройство тяжелой степени";
   }
}


</script>

рони 11.01.2018 12:04

Dilettante_Pro,
возможно строку 36 надо перенести на 38.

Dilettante_Pro 11.01.2018 13:38

рони,
Нет, надо просто прятать вопрос и селект по окончании теста.

Там и по вопросам надо менять value в option, т.е. и массив должен быть двумерным.
Это же набросок... Для начала. А то ТС замолчал.


Часовой пояс GMT +3, время: 20:05.