Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   checkbox решаем что делать (https://javascript.ru/forum/dom-window/56280-checkbox-reshaem-chto-delat.html)

Lecseus 10.11.2015 13:29

function kontroll(){
		var vastus=document.getElementsByName("v1"); //по имени радиокнопки name="#"
			if(vastus[0].checked && vastus[1].checked && vastus[3].checked){ // вписывает индекс ответа, счет с 0
				document.getElementById("otvet1").innerHTML="верно";
				document.getElementById("otvet1").style.color="green";
				correct++;
				
			}
			if(vastus[0].checked && vastus[1].checked && vastus[2].checked && vastus[3].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(vastus[0].checked && !vastus[1].checked && !vastus[2].checked && !vastus[3].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(!vastus[0].checked && vastus[1].checked && !vastus[2].checked && !vastus[3].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(!vastus[0].checked && !vastus[1].checked && !vastus[2].checked && vastus[3].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(vastus[0].checked && vastus[1].checked && !vastus[3].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(vastus[0].checked && vastus[3].checked && !vastus[1].checked && !vastus[2].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(vastus[1].checked && vastus[3].checked && !vastus[0].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
			if(!vastus[0].checked && !vastus[1].checked && !vastus[2].checked && !vastus[3].checked){
				document.getElementById("otvet1").innerHTML="неверно";
				document.getElementById("otvet1").style.color="red";
			}
	};

допустим

рони 10.11.2015 14:20

Lecseus,
макет это когда можно жмакнуть и увидеть или не увидеть результат
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<input type="checkbox" name="v1">
<input type="checkbox" name="v1">
<input type="checkbox" name="v1">
<input type="checkbox" name="v1">
<input name="" type="button" value="проверить" onclick="kontroll()">
<p  id="otvet1"></p>
<script>  var correct = 0;

function kontroll() {
    var otv = document.getElementById("otvet1"),
        vastus = document.getElementsByName("v1"),
        answer = [1, 1, 0, 1];
    answer = answer.every(function(check, i) {
        return check == vastus[i].checked
    })
    otv.innerHTML = answer ? "верно" : "неверно";
    otv.style.color = answer ? "green" : "red";
    answer && correct++;

};
</script>
</body>

</html>

ksa 10.11.2015 14:25

Цитата:

Сообщение от Lecseus
допустим

Не совсем понятно зачем все остальные "условия", если все они неправильные? :blink:

Все это запросто меняется на

function kontroll(){
	var vastus=document.getElementsByName("v1"); //по имени радиокнопки name="#"
	if(vastus[0].checked && vastus[1].checked && vastus[3].checked){ // вписывает индекс ответа, счет с 0
		document.getElementById("otvet1").innerHTML="верно";
		document.getElementById("otvet1").style.color="green";
		correct++;
		return;
	};
	document.getElementById("otvet1").innerHTML="неверно";
	document.getElementById("otvet1").style.color="red";
};

рони 10.11.2015 14:38

Цитата:

Сообщение от ksa
Все это запросто меняется на

:nono:

ksa 10.11.2015 15:07

рони, чего я там пропустил? :blink:

рони 10.11.2015 15:09

Цитата:

Сообщение от ksa
if(vastus[0].checked && vastus[1].checked && !vastus[2].checked&& vastus[3].checked)

:) все тогда должны проверятся
Цитата:

Сообщение от рони
answer = [1, 1, 0, 1];


ksa 10.11.2015 15:14

рони, в любом случае у него правильная комбинация только одна.
Делать столько проверок на "неправильность" нет смысла... :)

рони 10.11.2015 15:18

Цитата:

Сообщение от ksa
в любом случае у него правильная комбинация только одна.

да но полная правильная :)

ksa 10.11.2015 15:25

рони, я просто переделал его последний пример... :D
На само условие не смотрел. :no:

Lecseus 10.11.2015 17:04

мне у вас, рони, даже не хочется копировать.. ибо я не понимаю кода. но со switch case никак совсем?
да и спасибо большое, буду разбираться.


Часовой пояс GMT +3, время: 17:09.