Подсчет правильных ответов.
Есть тест, созданный через массив с объектами.
Правильные ответы подсвечены зеленым цветом. Нужно, чтобы при клике на кнопку "результат" выводилось кол-во правильных и неправильных ответов. Помогите пж-ста реализовать это через js. https://jsfiddle.net/gd4zcpxw/ <!doctype html> <html> <head> <title>Test 1</title> <meta charset="utf-8"> </head> <body> <script> var voprosi = [ {vopr: "Сколько лет ...", otvet: [1, 45, 99, 34], pravOtvet: 1}, {vopr: "Какой вес...", otvet: ["100kg", "120kg", "104kg", "110kg"], pravOtvet: 2}, ]; for(var i = 0; i < voprosi.length; i ++){ var tekushiyVopros = voprosi[i]; var harciIndex = i + 1; document.write("<p>" + harciIndex + ") " + tekushiyVopros.vopr + "</p>"); for(var j = 0; j < tekushiyVopros.otvet.length; j ++){ var patasxaniIndex = j + 1; var yntacikPatasxaniGuyn = patasxaniIndex == tekushiyVopros.pravOtvet ? "green" : "red"; document.write("<p style='color: " + yntacikPatasxaniGuyn + "'>" + patasxaniIndex + ") <input type='radio' name='harc_" + harciIndex + "'>" + tekushiyVopros.otvet[j] + "</p>"); } document.write("<br/>") } </script> <input type="submit" value="Проверить" onclick="clic()"> </body> </html> |
Wilshere,
так пойдет? <script> var voprosi = [ {vopr: "Сколько лет ...", otvet: [1, 45, 99, 34], pravOtvet: 1}, {vopr: "Какой вес...", otvet: ["100kg", "120kg", "104kg", "110kg"], pravOtvet: 2}, ]; function creatQuestions(){ var mainForm = document.getElementById('myform'); for(var i = 0; i < voprosi.length; i ++){ var harciIndex = i + 1; var elemQues = document.createElement('p'); elemQues.innerHTML = harciIndex + ") " + voprosi[i].vopr; mainForm.insertBefore(elemQues, btn); for(var j = 0; j < voprosi[i].otvet.length; j ++){ var patasxaniIndex = j + 1; var yntacikPatasxaniGuyn = patasxaniIndex == voprosi[i].pravOtvet ? "green" : "red"; var elemAnsw = document.createElement('p'); elemAnsw.style.color = yntacikPatasxaniGuyn; mainForm.insertBefore(elemAnsw, btn); elemAnsw.innerHTML = patasxaniIndex + ")"; var elemRadio = document.createElement('input'); elemRadio.type = 'radio'; elemRadio.name = 'q' + harciIndex; elemRadio.id = 'q' + harciIndex + '_' + patasxaniIndex; elemRadio.value = j+1; var elemLabel = document.createElement('label'); elemLabel.innerHTML = voprosi[i].otvet[j]; elemAnsw.appendChild(elemRadio); elemAnsw.appendChild(elemLabel); } } } function btnClick(){ var sum =0; for(var i = 1; i <= voprosi.length; i ++){ for(var j = 1; j <= voprosi[i-1].otvet.length; j ++){ answName = "q" + i + "_" + j; x = document.getElementById(answName); if (x.checked == true && x.value == voprosi[i-1].pravOtvet){ sum++; } } } alert(sum); } </script> <body onload ='creatQuestions()'> <form name="myform" id="myform"> <input type="submit" id = 'btn' value="Проверить" onclick="btnClick(); return false;"> </form> |
Часовой пояс GMT +3, время: 14:55. |