Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

feasso

Verificando ckeckbox

Recommended Posts

Como faço para saber quantos checkbox foram selecionados pelos usuários ?

 

Tenho um bloco com 10 ckeckbox e ele poderá escolhar até 3, como faço a verificação ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem algumas formas simples..

 

segue exemplo

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
  <script type="text/javascript">
	 
	var countSelecionados = 0;
		var maxSelect = 3;
	function check(obj){
		if(countSelecionados != maxSelect){
			if(obj.checked){
				this.countSelecionados++;			
			}else{
				this.countSelecionados--;			
			}
		}else{
			obj.checked = false;
			alert('Numero maximo de escolhas!');
		}	
	}
  </script>
</head>
<body>  
	<input type="checkbox" value="1" onchange="check(this)"/>
	<input type="checkbox" value="2" onchange="check(this)"/>
	<input type="checkbox" value="3" onchange="check(this)"/>
	<input type="checkbox" value="4" onchange="check(this)"/>
	<input type="checkbox" value="5" onchange="check(this)"/>
</body>
</html>

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase perfeito... porém, quando após escolher a 3ª e tentar escolher a 4ª o alert é exibido, mas se tento desabilitar ele dá o alert e mesmo assim desabilita ficando com apenas 2 escolhidos e apartir deste ponto não consigo escolher mais uma terceira opção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

opaaa faltou coisa rsr

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <script type="text/javascript">
	 
	var countSelecionados = 0;
		var maxSelect = 3;
	function check(obj){
		if(countSelecionados != maxSelect){
			if(obj.checked){
				this.countSelecionados++;			
			}else{
				this.countSelecionados--;			
			}
		}else{
			if(obj.checked){
				obj.checked = false;
				alert('Numero maximo de escolhas!');
			}else{
				this.countSelecionados--;	
			}
		}	
	}
  </script>
</head>
<body>  
	<input type="checkbox" value="1" onchange="check(this)"/>
	<input type="checkbox" value="2" onchange="check(this)"/>
	<input type="checkbox" value="3" onchange="check(this)"/>
	<input type="checkbox" value="4" onchange="check(this)"/>
	<input type="checkbox" value="5" onchange="check(this)"/>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

São várias perguntas vindas do BD e cada uma delas tem os seus checkbox.

 

Ele está somando os checkbox de uma pergunta com os da outra.

 

Todas elas estão em um while / loop

 

Como faço para somar os blocos separadamente ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mto facil

 

editado: rsrsrsr nao vi que ja tinham postado a solucao final, estava aqui acabando fica ae meu codigo na mesma

 

olhando para o codigo do otata eu nao usei a funcao nos checks fiz direto no js

 

note: onde esta a variavel maximo é o numero de checks maximo que quer

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
  <script type="text/javascript">
 function conta(){
 obj=document.getElementsByTagName("input");
 contador=0
	 for(i=0;i<obj.length;i++){
		 
		 if(obj[i].type="checkbox")
		 {
		
		 if(obj[i].checked==true){contador++}
			 }
		 }
	 return contador
 }
 
  function teste(){
 obj=document.getElementsByTagName("input");
 contador=0
 maximo=3
	 for(i=0;i<obj.length;i++){
		 
		 if(obj[i].type="checkbox")
		 {
		   this.onclick=function(){
			  n=conta()
			  
			  if(n>maximo){return false}
			   
			   }
		   
			 }
		 }
	
 }
 
 window.onload=function(){return teste()}
 
  </script>
</head>
<body>  
	<input type="checkbox" value="1" />
	<input type="checkbox" value="2" />
	<input type="checkbox" value="3" />
	<input type="checkbox" value="4" />
	<input type="checkbox" value="5" />
	<br />
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

feasso quanto a sua ultima pergunta, se sao questoes pk usa checksboxes e nao usa radioboxes ou suas perguntas tem mais do que uma resposta possivel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode explicar ao certo o que pretende fazer?

 

ja entendemos que tem 10 checkboxes em cada bloco e que cada pode so ter 3 checkados mas afinal o que você pretende somar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero somar quantos checkbox foram selecionados (clicados).

 

Tenho várias perguntas e cada pergunta sem 8 respostas... e o usuário pode selecionar 3 respostas para cada pergunta, ao tentar clicar na 4ª resposta há um alert avisando que só pode escolher 3 respostas.

 

O problema é quando o usuário escolhe 3 respostas de uma pergunta, ele já não consegue selecionar nenhuma resposta de uma OUTRA pergunta pois o límite já foi atingido. Mas isto está errado, o certo é 3 respostas para cada pergunta.

 

Como faço para separar isso na function ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os checkbox tem que ter nomes diferentes!

 

Ao invés de pegar os elementos pelo nome da tag, pegue pelo nome...

 

aí vai funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código a seguir conta quantos checkboxes foram marcados. Se um 4º checkbox for marcado, irá aparecer uma mensagem de alerta, informando que apenas 3 respostas são permitidas. Em seguida, o 4º checkbox é desmarcado (último selecionado).

 

Testado no IE e FF.

<html><head>
<script type="text/javascript">
function contarChecks(local){
var objRadio = document.forms["form1"].elements["pergunta1"];
var i;
var iCount = 0;
for (i=0; i < objRadio.length; i++) {
	if (objRadio[i].checked == true) {
		 iCount++;
		if (iCount > 3) {
			alert("Somente 3 respostas são permitidas!");
			local.checked = false;
		} 
   }
}
} 
</script>
</head>
<form name="form1" action="" method="post">
O Palmeiras é um time:
<br><br><input type="checkbox" name="pergunta1" value="sensacional" onClick="contarChecks(this)"> Sensacional!
<br><input type="checkbox" name="pergunta1" value="formidavel" onClick="contarChecks(this)"> Formidável!
<br><input type="checkbox" name="pergunta1" value="magnifico" onClick="contarChecks(this)"> Magnífico!
<br><input type="checkbox" name="pergunta1" value="excelente" onClick="contarChecks(this)"> Excelente!
<br><input type="checkbox" name="pergunta1" value="genial" onClick="contarChecks(this)"> Genial!
<br><input type="checkbox" name="pergunta1" value="incomparavel" onClick="contarChecks(this)"> Incomparável!
<br><input type="checkbox" name="pergunta1" value="fenomenal" onClick="contarChecks(this)"> Fenomenal!
<br><input type="checkbox" name="pergunta1" value="maravilhoso" onClick="contarChecks(this)"> Maravilhoso!
<br><input type="checkbox" name="pergunta1" value="brilhante" onClick="contarChecks(this)"> Brilhante!
<br><br><input type="submit" value=" Enviar ">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.