Как найти правильный ответ в коде страницы

В общем идея такая, имеются имеются radiobutton’ы нужно нажать выбрать ответы во всех вопросах, по нажатию на кнопку должно проверяться правильные ответы или нет. Вот с этим проблема с JS я знаком не сильно, и уже битый час не могу понять как проверить корректность ответа, уже и так и этак пробовал. Вот последний вариант:

function summary(){
    let count = document.getElementsByClassName('question').length; //Количество вопросов
    let answers = document.querySelectorAll('.question'); //Все элементы div с вопросами (???)
    let score = 0; //Количество верных ответов
    let rightAnswers = ['<input type="radio" name="quest0" id="a_1">','<input type="radio" name="quest1" id="a_3">','<input type="radio" name="quest2" id="a_1">'] //Список верных ответов
    
    for (let i = 0; i < count; i++){
        let chosenAnswer = answers[i].querySelector("input[type='radio']:checked"); //Из массива вопросов выбираем элемент радио, который выбрал пользователь
        if (chosenAnswer == rightAnswers[i]) //Думал что будет работать если будет свреять по html разметке, но зря
        {
            score++;
        }
        console.log("Выбранный ответ: " + chosenAnswer);
        console.log("Правильный ответ: " + rightAnswers[i]);
        console.log("Очки: " + score);
    }
}
<div class="question">
                <hr>
                <p class="text-center"><b>ВОПРОС №1: &laquo;В каком году родился Бродский?&raquo;</b></p>
                <ol>
                    <li><input type="radio" name="quest0" id="a_1"> <label class="form-check-label" for="a_1">В 1926 году</label></li>
                    <li><input type="radio" name="quest0" id="a_2"> <label class="form-check-label" for="a_2">В 1936 году</label></li>
                    <li><input type="radio" name="quest0" id="a_3"> <label class="form-check-label" for="a_3">В 1956 году</label></li>
                    <li><input type="radio" name="quest0" id="a_4"> <label class="form-check-label" for="a_4">В 1986 году</label></li>
                </ol>
            </div>

            <div class="question">
            <hr>
                <p class="text-center"><b>ВОПРОС №2: &laquo;В каком году родился Бродский?&raquo;</b></p>
                <ol>
                    <li><input type="radio" name="quest1" id="a_1"> <label class="form-check-label" for="a_1">В 1926 году</label></li>
                    <li><input type="radio" name="quest1" id="a_2"> <label class="form-check-label" for="a_2">В 1936 году</label></li>
                    <li><input type="radio" name="quest1" id="a_3"> <label class="form-check-label" for="a_3">В 1956 году</label></li>
                    <li><input type="radio" name="quest1" id="a_4"> <label class="form-check-label" for="a_4">В 1986 году</label></li>
                </ol>
            </div>

            <div class="question">
                <hr>
                <p class="text-center"><b>ВОПРОС №3: &laquo;В каком году родился Бродский?&raquo;</b></p>
                <ol>
                    <li><input type="radio" name="quest2" id="a_1"> <label class="form-check-label" for="z_1">В 1926 году</label></li>
                    <li><input type="radio" name="quest2" id="a_2"> <label class="form-check-label" for="a_2">В 1936 году</label></li>
                    <li><input type="radio" name="quest2" id="a_3"> <label class="form-check-label" for="a_3">В 1956 году</label></li>
                    <li><input type="radio" name="quest2" id="a_4"> <label class="form-check-label" for="a_4">В 1986 году</label></li>
                </ol>
            </div>
            <hr>
            
            <button class="btn-success btn-lg btn-block" id ="apply" onclick="summary();">Получить результат</button>

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

задан 15 дек 2019 в 16:08

Warden's user avatar

Не дублируйте id элементов. С повторяющимися id щелчки по label с for работают неправильно.

function summary() {
  let count = document.getElementsByClassName('question').length; //Количество вопросов
  let answers = document.querySelectorAll('.question'); //Все элементы div с вопросами (???)
  let score = 0; //Количество верных ответов
  let rightAnswers = ["a_1", "a_3", "a_1"] //Список верных ответов

  for (let i = 0; i < count; i++) {
    let chosenAnswer = answers[i].querySelector("input[type='radio']:checked"); //Из массива вопросов выбираем элемент радио, который выбрал пользователь
    if (chosenAnswer && chosenAnswer.id == rightAnswers[i]) //Думал что будет работать если будет свреять по html разметке, но зря
    {
      score++;
    }
    console.log("Выбранный ответ: " + chosenAnswer && chosenAnswer.parentNode.textContent);
    console.log("Правильный ответ: " + rightAnswers[i]);
    console.log("Очки: " + score);
  }
}
<div class="question">
  <hr>
  <p class="text-center"><b>ВОПРОС №1: &laquo;В каком году родился Бродский?&raquo;</b></p>
  <ol>
    <li><input type="radio" name="quest0" id="a_1"> <label class="form-check-label" for="a_1">В 1926 году</label></li>
    <li><input type="radio" name="quest0" id="a_2"> <label class="form-check-label" for="a_2">В 1936 году</label></li>
    <li><input type="radio" name="quest0" id="a_3"> <label class="form-check-label" for="a_3">В 1956 году</label></li>
    <li><input type="radio" name="quest0" id="a_4"> <label class="form-check-label" for="a_4">В 1986 году</label></li>
  </ol>
</div>

<div class="question">
  <hr>
  <p class="text-center"><b>ВОПРОС №2: &laquo;В каком году родился Бродский?&raquo;</b></p>
  <ol>
    <li><input type="radio" name="quest1" id="a_1"> <label class="form-check-label" for="a_1">В 1926 году</label></li>
    <li><input type="radio" name="quest1" id="a_2"> <label class="form-check-label" for="a_2">В 1936 году</label></li>
    <li><input type="radio" name="quest1" id="a_3"> <label class="form-check-label" for="a_3">В 1956 году</label></li>
    <li><input type="radio" name="quest1" id="a_4"> <label class="form-check-label" for="a_4">В 1986 году</label></li>
  </ol>
</div>

<div class="question">
  <hr>
  <p class="text-center"><b>ВОПРОС №3: &laquo;В каком году родился Бродский?&raquo;</b></p>
  <ol>
    <li><input type="radio" name="quest2" id="a_1"> <label class="form-check-label" for="z_1">В 1926 году</label></li>
    <li><input type="radio" name="quest2" id="a_2"> <label class="form-check-label" for="a_2">В 1936 году</label></li>
    <li><input type="radio" name="quest2" id="a_3"> <label class="form-check-label" for="a_3">В 1956 году</label></li>
    <li><input type="radio" name="quest2" id="a_4"> <label class="form-check-label" for="a_4">В 1986 году</label></li>
  </ol>
</div>
<hr>

<button class="btn-success btn-lg btn-block" id="apply" onclick="summary();">Получить результат</button>

ответ дан 15 дек 2019 в 16:33

1

Смотрите исходный код страницы теста.
В самом низу страницы (с исходным кодом), есть JS часть, которая включает в себя все необходимое для визуального построения самого теста и необходимый вам, правильный ответ на вопрос.

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

<script type="text/javascript" nonce="">var FB_PUBLIC_LOAD_DATA_ = [null,[null,[[1093722439,"Фамилия имя (класс)",null,0,[[255384100,null,1]
]
]
,[193574675,"Равноускоренным движением называют движение, при котором:",null,2,[[366340186,[["скорость тела за равные промежутки времени изменяется на одинаковые значения",null,null,null,0]
,["скорость тела за разные промежутки времени изменяется на одинаковые значения",null,null,null,0]
,["скорость тела не изменяется",null,null,null,0]
,["тело за равные промежутки времени проходит равные расстояния",null,null,null,0]
]
,1,null,null,null,null,null,0]
]
]
,[587289827,"В каких единицах измеряется ускорение в СИ?",null,2,[[509151620,[["км/ч",null,null,null,0]
,["м/с",null,null,null,0]
,["км/ч2",null,null,null,0]
,["м/с2",null,null,null,0]
]
,1,null,null,null,null,null,0]
]
]
,[1329810647,"Какое(-ие) утверждение(-я) верно(-ы): а)если направление ускорения совпадает с направлением начальной скорости, то модуль скорости увеличивается; б)если направление ускорения противоположно направлеu00adнию начальной скорости, то модуль скорости уменьшается ?",null,2,[[1318108934,[["Только а",null,null,null,0]
,["Только б",null,null,null,0]
,["И а,и б",null,null,null,0]
,["Ни а, ни б",null,null,null,0]
]
,1,null,null,null,null,null,0]
]
]
,[1225253231,"Мотоциклист начинает движение из состояния покоя. Через 30 с. он достигает скорости 54 км/ч. С каким ускорением происходит движение?",null,2,[[2072649184,[["54 м/с",null,null,null,0]
,["0,25 м/с2",null,null,null,0]
,["0,9 м/с2",null,null,null,0]
,["0,5 м/с2",null,null,null,0]
]
,1,null,null,null,null,null,1]
]
]
,[168236800,"Санки съехали с одной горки и въехали на другую. Во время подъема на горку скорость санок, двигавшихся прямолинейно и равноускоренно, за 4 с изменилась от 12 м/с до 2 м/с. При этом ускорение равно",null,2,[[1449277647,[["-2,5 м/с2",null,null,null,0]
,["2,5 м/с2",null,null,null,0]
,["-3,5 м/с2",null,null,null,0]
,["3,5 м/с2",null,null,null,0]
]
,1,null,null,null,null,null,0]
]
]
,[1076361806,"Во время подъема в гору скорость велосипедиста, двигающегося прямолинейно и равноускоренно, изменилась за 8 с от 5 м/с до 10,8 км/ч. При этом модуль ускорения велосипедиста был равен",null,2,[[245395180,[["-0,25 м/с2",null,null,null,0]
,["0,25 м/с2",null,null,null,0]
,["-0,9 м/с2",null,null,null,0]
,["0,9 м/с2",null,null,null,0]
]
,1,null,null,null,null,null,1]
]
]
,[491505698,"Велосипедист съезжает с горки, двигаясь прямолинейно и равноускоренно. За время спуска скорость велосипедиста увеличилась на 10 м/с. Ускорение велосипедиста 0,5 м/с2. Сколько времени длится спуск?",null,2,[[1020120114,[["0,05 с",null,null,null,0]
,["2 с",null,null,null,0]
,["5 с",null,null,null,0]
,["20 с",null,null,null,0]
]
,1,null,null,null,null,null,1]
]
]
,[246260119,"Ускорение велосипедиста на одном из спусков трассы равно 1,2 м/с2. На этом спуске его скорость увеличилась на 18 м/с. Велосипедист заканчивает свой спуск после его начала через",null,2,[[1925188574,[["0,07 с",null,null,null,0]
,["7,5 с",null,null,null,0]
,["15 с",null,null,null,0]
,["21,6 с",null,null,null,0]
]
,1,null,null,null,null,null,1]
]
]
,[1239872914,"Вагон наехал на тормозной башмак при скорости 4,5 км/ч. Через 3 с вагон остановился. Определите тормозной путь",null,2,[[189839048,[["1,88 м",null,null,null,0]
,["10,8 м",null,null,null,0]
,["9 м",null,null,null,0]
,["13,5 м",null,null,null,0]
]
,1,null,null,null,null,null,1]
]
]
]
,["",1,0,0,0]
,null,null,[0,0]
,null,null,"Тест: Прямолинейное равноускоренное движение (9 класс)",48,[null,null,null,null,0]
,null,null,null,"ru",[2]
,[[1,1,1,1,1]
,1,1]
]
,"/forms","Тест Прямолинейное равноускоренное движение (9 класс)",null,null,null,"0",null,0,0,"","",0,"e/1FAIpQLScGdlcyRYIkjLpLIp2IG9-ohGKBXnL5w7wBkSZSzukv-6YzPg",0,"[{"data":{"value":[]},"keyPath":["syncMap","applicationFonts","6"],"state":{"hashValue":"00000000"}},{"data":{"value":[]},"keyPath":["syncMap","domainFonts","0"],"state":{"hashValue":"00000000"}},{"data":{"familyList":["Alegreya","Amatic SC","Bree Serif","Calibri","Cambria","Merriweather","Permanent Marker","Pinyon Script","Playfair Display","Proxima Nova","Roboto","Roboto Mono","Ultra","Varela Round","Raleway","Indie Flower","Open Sans"],"recentlyUsedFamilyList":["Courier New","Roboto","Impact","Caveat","Open Sans","Oswald","Arial","Comic Sans MS","Amatic SC","Pacifico"],"transitionedFamilyList":["Raleway","Indie Flower","Open Sans"],"hasTransitioned":true},"keyPath":["syncMap","preferences","docs-fonts"],"state":{"timestamp":1583131708644813}},{"data":{"value":0},"keyPath":["syncMap","preferences","docs-hats_dc"],"state":{"timestamp":1587989037131000}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-hats_st"],"state":{"timestamp":1587989037131000}},{"data":{"value":[]},"keyPath":["syncMap","preferences","docs-hats_sth"],"state":{"timestamp":1587989037131000}},{"data":{"blameLaunch":true},"keyPath":["syncMap","preferences","docs-global_promos","0"],"state":{"timestamp":1585158841532567}},{"data":{"recent_templates":["83"]},"keyPath":["syncMap","preferences","docs-recent_templates","6"],"state":{"timestamp":1575462007211623}},{"data":{"recent_templates":["42","98","70"]},"keyPath":["syncMap","preferences","docs-recent_templates","2"],"state":{"timestamp":1575462007211623}},{"data":{"recent_templates":["24","20","23"]},"keyPath":["syncMap","preferences","docs-recent_templates","1"],"state":{"timestamp":1575462007211623}},{"data":{"value":true},"keyPath":["syncMap","preferences","mae-show_addons_menu_promo"],"state":{"timestamp":1539457834577100}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-homescreen-aips"],"state":{"timestamp":1539456805013703}},{"data":{},"keyPath":["syncMap","preferences","docs-homescreen-asp","6"],"state":{"timestamp":1585158841532567}},{"data":{"value":1539456807294},"keyPath":["syncMap","preferences","docs-homescreen-ftbdct"],"state":{"timestamp":1539456805013703}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-homescreen-dbs"],"state":{"timestamp":1539456805013703}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-homescreen-ht"],"state":{"timestamp":1539456805013703}},{"data":{"value":true},"keyPath":["syncMap","preferences","docs-homescreen-wws"],"state":{"timestamp":1539456805013703}},{"data":{"value":0},"keyPath":["syncMap","preferences","docs-etg-lvt"],"state":{"timestamp":1587989037141000}},{"data":{"viewMode":1},"keyPath":["syncMap","preferences","docs-chrome","2"],"state":{"timestamp":1569896320193707}},{"data":{"viewMode":1},"keyPath":["syncMap","preferences","docs-chrome","1"],"state":{"timestamp":1569896320193707}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-screenreader"],"state":{"timestamp":1587989037144000}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-enable_braille"],"state":{"timestamp":1587989037144000}},{"data":{"value":false},"keyPath":["syncMap","preferences","docs-mute_collaborators"],"state":{"timestamp":1587989037144000}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_chooser"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_link_form_promo"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_whats_new"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-expand_dasher_options"],"state":{"timestamp":1539457966183675}},{"data":{"proto":"[]\n"},"keyPath":["syncMap","preferences","freebird-auto_create_sink"],"state":{"timestamp":1587989037150000}},{"data":{"proto":"[]\n"},"keyPath":["syncMap","preferences","freebird-ui_version"],"state":{"timestamp":1587989037153000}},{"data":{"value":false},"keyPath":["syncMap","preferences","freebird-questions_required_by_default"],"state":{"timestamp":1539457966183675}},{"data":{"value":false},"keyPath":["syncMap","preferences","freebird-collect_usernames_by_default"],"state":{"timestamp":1539457966183675}},{"data":{"value":0},"keyPath":["syncMap","preferences","freebird-default_point_value"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_assessments_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-autovalidate_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_qxq_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":false},"keyPath":["syncMap","preferences","freebird-show_braveheart_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_manual_grading_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_record_view_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_brain_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":false},"keyPath":["syncMap","preferences","freebird-has_seen_braveheart_theme_warning"],"state":{"timestamp":1539457966183675}},{"data":{"value":false},"keyPath":["syncMap","preferences","freebird-show_custom_themes_toast"],"state":{"timestamp":1539457966183675}},{"data":{"value":false},"keyPath":["syncMap","preferences","freebird-show_edu_bundle_18_toast"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_quizzes_intro"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_business_forms_intro_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_business_forms_add_a_step_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_business_forms_new_step_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_question_import_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_locked_mode_guided_help"],"state":{"timestamp":1539457966183675}},{"data":{"value":true},"keyPath":["syncMap","preferences","freebird-show_draft_responses_modal"],"state":{"timestamp":1539457966183675}}]",1]
;</script>

Is there a way to the view the correct answers to this test quiz I made?
https://forms.gle/GgKVJrSTnDSLBEhF8

When I created the quiz I also set the keys to be shown once you complete all the form but the answers values in the source page are shown as «null». Is there a way to show them before completing the quiz?

</span></span></div></div></div><script type="text/javascript" nonce="J/rILYt/GY+3CLlNicwpfQ">var FB_PUBLIC_LOAD_DATA_ = [null,["Is there a way to view the answers for this dynamic page? Answers for test1u003db, test2u003dj, Open answer textu003dHello",[[1085708340,"Open answer: ",null,0,[[123642890,null,1]
]
]
,[193574675,"What is the first answer?",null,2,[[366340186,[["a",null,null,null,0]
,["b",null,null,null,0]
,["c",null,null,null,0]
,["d",null,null,null,0]
,["e",null,null,null,0]
]
,1,null,null,null,null,null,0]
]
]
,[987281703,"What is the second answer?",null,2,[[369282704,[["f",null,null,null,0]
,["g",null,null,null,0]
,["h",null,null,null,0]
,["i",null,null,null,0]
,["j",null,null,null,0]
]
,0,null,null,null,null,null,0]
]
]
]
,["Thank You!",1,0,0,0]
,null,null,[0,0]
,null,[1,""]
,"Test Quiz",48,[null,null,0,2,0]
,null,null,null,"it",[2]
,[[1,1,1,0,1]
,1,1]
,null,[]
]

Thank you for any help!

Mirea Ninja

Загрузка…

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Диагонали равнобедренной трапеции перпендикулярны как найти площадь
  • Как найти нормальность раствора формула
  • Как найти приложение яндекс про
  • Как составить общую формулу для всех чисел на числовой окружности
  • Как найти хороший клан вот

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии