Вопрос Не работает js

Начинающий
Статус
Оффлайн
Регистрация
11 Янв 2021
Сообщения
21
Реакции[?]
0
Поинты[?]
0
Код:
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)
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
20 Ноя 2019
Сообщения
31
Реакции[?]
0
Поинты[?]
0
Код:
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)
    }
}
Для просмотра содержимого вам необходимо авторизоваться.
 
Последнее редактирование:
Сверху Снизу