Помогите пожалуйста с тестом!!!
Имеется тест, который выводит оценку и кол-во правильных ответов. Необходимо, чтобы тест еще выводил номера вопросов где ответили не правильно. Помогите пожалуйста!!!
Код:
<html> |
<html> <head> <meta charset="windows-1251" /> <link rel="stylesheet" type="text/css" href="Form1.css"> <style> body { background: url(1.jpg) no-repeat 100%; background-attachment:fixed; } </style> </head> <body> <form method="get" name="formname" onsubmit="return checkForm();"> <div id="header"><center><h2><i>Ответьте на вопросы!</i></h2></center></div> <div id="block1"> <center><h4 name="v1">1. Сколько будет 2+2*5?</h4></center> <input type="radio" name="q1">25<br> <input type="radio" name="q1">20<br> <input type="radio" name="q1">12<br> <input type="radio" name="q1">30<br> <input type="radio" name="q1">35<br> <input type="radio" name="q1">50<br> </div> <div id="block2"> <center><h4>2. Какая самая богатая страна мира?</h4></center> <input type="radio" name="q2">США<br> <input type="radio" name="q2">Россия<br> <input type="radio" name="q2">Китай<br> <input type="radio" name="q2">Канада<br> <input type="radio" name="q2">Катар<br> <input type="radio" name="q2">Германия<br> </div> <div id="block3"> <center><h4>3. Как называется наша галактика?</h4></center> <input type="radio" name="q3">Галактика Андромеды<br> <input type="radio" name="q3">Комета<br> <input type="radio" name="q3">Млечный путь<br> <input type="radio" name="q3">Объект Мейола<br> <input type="radio" name="q3">Водоворот<br> <input type="radio" name="q3">Веретено<br> </div> <div id="block4"> <center><h4>4. Кто основал компанию Microsoft?</h4></center> <input type="radio" name="q4">Стив Джобс<br> <input type="radio" name="q4">Ларри Пейдж<br> <input type="radio" name="q4">Акио Морито<br> <input type="radio" name="q4">Билл Гейтс<br> <input type="radio" name="q4">Фредерик Идестам<br> <input type="radio" name="q4">Вернер Сименс<br> </div> <div id="block5"> <center><h4>5. Какое самое быстрое животное в мире?</h4></center> <input type="radio" name="q5">Лев<br> <input type="radio" name="q5">Зебра<br> <input type="radio" name="q5">Газель<br> <input type="radio" name="q5">Заяц<br> <input type="radio" name="q5">Собака<br> <input type="radio" name="q5">Гепард<br> </div> <div id="block6"> <center><h4>Нажмите на кнопку ниже, чтобы узнать результат.</h4></center> <input style="margin-left:43px;" type="button" value="Принять ответ" name="ok"/> <input type="reset" value="Сбросить тест"/> </div> </form> <script> ball=1, //балл за вопрос answers={q1: 1, q2: 0, q3: 2, q4: 3, q5: 5} document.getElementsByName("ok")[0].onclick=function(){ var count=0 "block1 block2 block3 block4 block5" .split(" ") .map(function(id){return document.getElementById(id).querySelectorAll("input")}) .forEach(function(collection){for(var i=0; i<collection.length; i++){ if((collection[i].checked)&&(answers[collection[i].name]===i)) count++ }}) alert("Ваша оценка: "+count*ball+". Вы ответили на "+count+" вопросов из 5") } </script> </body> </html> PS не понял вашей мудреной системы начисления баллов за оценки. Я в математике не силен. В моем варианте, тупо начисление балла за каждый правильный ответ. Сбрасывать тест тоже непонятно зачем, все равно невозможно установить больше 1 флага на блок. |
Спасибо конечно, но результат тот же, что и у меня. Мне нужно, чтобы показывало дополнительно вопросы на которые не правильно ответил
|
Так чтоли?
<html> <head> <meta charset="windows-1251" /> <link rel="stylesheet" type="text/css" href="Form1.css"> <style> body { background: url(1.jpg) no-repeat 100%; background-attachment:fixed; } </style> </head> <body> <form method="get" name="formname" onsubmit="return checkForm();"> <div id="header"><center><h2><i>Ответьте на вопросы!</i></h2></center></div> <div id="block1"> <center><h4 name="v1">1. Сколько будет 2+2*5?</h4></center> <input type="radio" name="q1">25<br> <input type="radio" name="q1">20<br> <input type="radio" name="q1">12<br> <input type="radio" name="q1">30<br> <input type="radio" name="q1">35<br> <input type="radio" name="q1">50<br> </div> <div id="block2"> <center><h4>2. Какая самая богатая страна мира?</h4></center> <input type="radio" name="q2">США<br> <input type="radio" name="q2">Россия<br> <input type="radio" name="q2">Китай<br> <input type="radio" name="q2">Канада<br> <input type="radio" name="q2">Катар<br> <input type="radio" name="q2">Германия<br> </div> <div id="block3"> <center><h4>3. Как называется наша галактика?</h4></center> <input type="radio" name="q3">Галактика Андромеды<br> <input type="radio" name="q3">Комета<br> <input type="radio" name="q3">Млечный путь<br> <input type="radio" name="q3">Объект Мейола<br> <input type="radio" name="q3">Водоворот<br> <input type="radio" name="q3">Веретено<br> </div> <div id="block4"> <center><h4>4. Кто основал компанию Microsoft?</h4></center> <input type="radio" name="q4">Стив Джобс<br> <input type="radio" name="q4">Ларри Пейдж<br> <input type="radio" name="q4">Акио Морито<br> <input type="radio" name="q4">Билл Гейтс<br> <input type="radio" name="q4">Фредерик Идестам<br> <input type="radio" name="q4">Вернер Сименс<br> </div> <div id="block5"> <center><h4>5. Какое самое быстрое животное в мире?</h4></center> <input type="radio" name="q5">Лев<br> <input type="radio" name="q5">Зебра<br> <input type="radio" name="q5">Газель<br> <input type="radio" name="q5">Заяц<br> <input type="radio" name="q5">Собака<br> <input type="radio" name="q5">Гепард<br> </div> <div id="block6"> <center><h4>Нажмите на кнопку ниже, чтобы узнать результат.</h4></center> <input style="margin-left:43px;" type="button" value="Принять ответ" name="ok"/> <input type="reset" value="Сбросить тест"/> </div> </form> <script> ball=1, //балл за вопрос answers={q1: 1, q2: 0, q3: 2, q4: 3, q5: 5} document.getElementsByName("ok")[0].onclick=function(){ var count=0, wrong=[], noAnswer=[] "block1 block2 block3 block4 block5" .split(" ") .map(function(id){return document.getElementById(id).querySelectorAll("input")}) .forEach(function(collection){ var tmp=collection[0].name[1]; for(var i=0; i<collection.length; i++){ if(collection[i].checked){ if(answers[collection[i].name]===i) return count++; return wrong.push(tmp)}} noAnswer.push(tmp)}) alert("Ваша оценка: "+count*ball+".\nВы ответили на "+count+" вопросов из 5\n"+"Неверные ответы на вопросы: "+wrong+"\nНет ответов на вопросы: "+noAnswer) } </script> </body> </html> |
Kryloff,
Да, и вот еще что, сразу не обратил внимания, у вас там самая богатая страна -- толи канада, то ли катар, (с какого хрена?), если все правильно, исправте в answers={q1: 1, q2: 0, q3: 2, q4: 3, q5: 5}, если это не ошибка, я там США поставил, есличо. |
Часовой пояс GMT +3, время: 04:10. |