Тест с checkbox и radio
Вложений: 2
Во вложениях "рабочий" тест html c javascrip в блокноте + правильные ответы на тест
нужно доработать... Изначально тест был только с radio, в вопросах с несколькими правильными ответами исправил на checkbox.. как прописать правильные ответы на такие вопросы и что ещё изменить - не знаю.. Помогите |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test</title> </head> <body> <div class="list"></div> <input type="button" onclick="ok();" value="ok"> <script> var questions = [{ question: 'Укажите правильный ответ: «Ведущим видом деятельности в раннем детстве является...', responses: [ 'предметно-манипулятивная деятельность', 'непосредственно-эмоциональное общение', 'сюжетно- ролевая игра как «королева детства»' ], success: [0] }, { question: 'Определите название данного возрастного этапа психического развития ребенка: «Это период развития ребенка, который наступает за новорожденностью»', responses: [ 'раннее детство', 'дошкольный возраст', 'младенчество', 'новорожденность' ], success: [2] }, { question: 'Что является основной задачей возрастной психологии?', responses: [ 'научное обоснование возрастных норм', 'прогнозирование развития в разных возрастных периодах', 'изучение динамики развития в каждом возрастном периоде' ], success: [1, 2] }]; //init var div, list = document.querySelector('.list'); for (var i = 0, ln = questions.length; i < ln; ++i) { var quest = questions[i]; div = document.createElement('div'); div.setAttribute('quest', i); var r = []; for (var j = 0, lnR = quest.responses.length; j < lnR; ++j) { r.push('<div><input type="checkbox" num="' + j + '">' + quest.responses[j] + '</div>') } div.innerHTML = [ '<div>' + quest.question + '</div>', '<div>' + r.join('') + '</div>' ].join(''); list.appendChild(div); } //узнаем результаты function ok () { var q = document.querySelectorAll('div[quest]'), po = []; Array.prototype.forEach.call(q, function (val, index) { var resp = [], success = questions[index].success; Array.prototype.forEach.call(val.querySelectorAll('input[type=checkbox]:checked'), function (checkbox) { resp.push(parseInt(checkbox.getAttribute('num'))); }) console.log(resp); console.log(success) if (success.every(function (v) {return resp.indexOf(v) !== -1;})) { po.push(index + 1); } }); alert('Вы дали правильные ответы: ' + po.join(', ')) } </script> </body> </html> |
Часовой пояс GMT +3, время: 17:22. |