Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2016, 17:04
Аватар для Wilshere
Интересующийся
Отправить личное сообщение для Wilshere Посмотреть профиль Найти все сообщения от Wilshere
 
Регистрация: 07.03.2016
Сообщений: 11

Подсчет правильных ответов.
Есть тест, созданный через массив с объектами.
Правильные ответы подсвечены зеленым цветом. Нужно, чтобы при клике на кнопку "результат" выводилось кол-во правильных и неправильных ответов. Помогите пж-ста реализовать это через 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>
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2016, 12:34
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
js тесты. подсчет процентов Холоп Ваши сайты и скрипты 0 15.03.2016 09:15
Проверка теста с возможностью мультивыбора ответов tracerzzz Javascript под браузер 5 02.05.2015 15:49
Модернизация теста с возможностью нескольких правильных ответов PinokPodZad Общие вопросы Javascript 13 27.01.2015 20:05
Создать математический тренажер. NTG Javascript под браузер 3 22.04.2014 10:36
Тест в php. Некорректный подсчет правильных ответов. KamalovRadik Серверные языки и технологии 1 17.05.2012 03:52