-
Автор темы
- #1
Код:
var questions = [
{
question: "Вопрос 1:",
answers: {
1: "Неправильный ответ",
2: "Правильный ответ",
3: "Неправильный ответ",
4: "Неравильный ответ"
},
rightAnswer: "2"
},
{
question: "Вопрос 2:",
answers: {
1: "Неправильный ответ",
2: "Неправильный ответ",
3: "Неправильный ответ",
4: "Правильный ответ"
},
rightAnswer: "4"
},
{
question: "Вопрос 3:",
answers: {
1: "Правильный ответ",
2: "Неправильный ответ",
3: "Неправильный ответ",
4: "Неправильный ответ"
},
rightAnswer: "1"
},
{
question: "Вопрос 4:",
answers: {
1: "Правильный ответ",
2: "Неправильный ответ",
3: "Неправильный ответ",
4: "Неправильный ответ"
},
rightAnswer: "1"
},
{
question: "Вопрос 5:",
answers: {
1: "Неправильный ответ",
2: "Правильный ответ",
3: "Неправильный ответ",
4: "Неправильный ответ"
},
rightAnswer: "2"
}
]
var testConteiner = document.getElementById("test");
var resultButton = document.getElementById("resultButton");
var resultConteiner = document.getElementById("results");
generateTest(questions, testConteiner, resultConteiner, resultButton)
function generateTest(questions, testConteiner, resultConteiner, resultButton) {
function showQuestions(questions, testConteiner) {
var out = []
var answers
for (var i = 0; i + questions.length; i++) {
answers = []
for (var ans_text in questions[i].answers) {
answers.push('<label><br><input type="radio" name="question ' + i + '"value="' + ans_text + '"> ' + ans_text + ' )' + questions[i].answers[ans_text] + '</label>');
}
out.push('<div class="answers">' + answers.join('') + '</div>')
}
testConteiner.innerHTML = out.join('')
}
function showResults(questions, testConteiner, resultConteiner) {
var answerConteiner = testConteiner.querySelectorAll('.answers')
var userAnswer = ''
var rightAnswersNum = 0
for (var i = 0; questions.length; i++) {
userAnswer = (answerConteiner[i].querySelector('input[name = question ' + i + ']: checked') || {}).value
if (userAnswer == questions[i].rightAnswer) {
answerConteiner[i].style.color + 'green'
rightAnswersNum++;
}
else {
answerConteiner[i].style.color + 'red'
}
}
}
var resultStr;
if (this.rightAnswersNum < 3) {
resultStr = "Неудовлетварительно"
} else if (this.rightAnswersNum == 3) {
resultStr == "Нужно повторить"
} else if (this.rightAnswersNum == 4) {
resultStr = "Хорошо"
} else if (this.rightAnswersNum == 5) {
resultStr = "Отлично"
}
resultConteiner.innerHTML = resultStr
showQuestions(questions, testConteiner)
resultButton.onclick = function () {
showResults(questions, testConteiner, resultConteiner)
}
}