Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Alexsandro

Verificando radio-buttons

Recommended Posts

Olá a todos.

 

Meu caso é o seguinte:

 

Possuo um form com radio-buttons e preciso garantir que pelo menos 1 dentre eles foi escolhido. Até aí tudo bem, através do javascript faço a verificação:

var vaga_escolhida = false;
   
for(var i = 0; i < formulario.vaga.length; i++){
   if(formulario.vaga[i].checked){
      vaga_escolhida = true;
   }	  
}

Onde 'formulario.vaga' é a referência dos meus radio-buttons.

 

A quantidade de botões que aparecerão no form é aleatória (gerado via PHP) podendo ter de 1 a n.

E quando eu tenho somente 1 radio-button, o tipo de objeto aparentemente é HTMLInputElement e mais de 1 é Nodelist.

 

A dúvida:

 

Como identificar o tipo de objeto que o 'vaga' será? Ou maneira mais eficiente de validar isso via javascript.

 

Desde já obrigado.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peguei esse codigo aqui, veja se serve.

 

<HTML>
<head>
	<script src="//code.jquery.com/jquery-1.10.2.js"></script>
	<script>
		function valida() {
			var x=document.getElementsByTagName("input");
			var i=0;
			var c=new Array();
			a=0;
			for (i=0;i<=x.length-1;i++) {
			if (x[i].type=="checkbox" && x[i].id=="idT") {
			c[a] = x[i];
			a++;
			}
			}
			i=0;
			var checked = false;
			for (i=0;i<=c.length-1;i++) {
			if (c[i].checked==true) {
			checked = true;
			break;
			}
			}
			if (!checked) {
			alert("Escolha pelo menos um dos checkbox.");
			return false;
			}else if (confirm("Quer continuar?")) {
			return true;
			}else{
			return false;
			}
		}
	</script>
</head>
<BODY>
<form name="form1" action="form.php" method="POST">
	<input type="checkbox" name="nome[]" id="idT" value="1">
	<input type="checkbox" name="nome[]" id="idT" value="3">
	<input type="checkbox" name="nome[]" id="idT" value="4">
	<input type="submit" name="enviar" value="enviar" id="enviar" onclick="return valida();">
</form>

</BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

um if normal, se > 1 nodelist

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Daniel.

 

Realmente desta forma resolvi o problema, utilizando-me do seu código.

 

Criei uma função separada, para que eu possa utilizar em outras validações em qq outra página.

 

Obrigado.

 

function valida_inputs(tipoCampo,idCampo){
   var inputs = document.getElementsByTagName('input');
   
   var escolhidos = new Array();
   
   var contador = 0; //Atribuir os inputs escolhidos às primeiras posições do array escolhido (evita espaços em branco)
   
   for(var i = 0; i < inputs.length;i++){   	  
   	  if(inputs[i].type == tipoCampo && inputs[i].id == idCampo){
	  	 escolhidos[contador] = inputs[i];
	  	 contador++;
	  }
   }
   var marcado = false;
   
   for(var j = 0; j < escolhidos.length; j++){
      if(escolhidos[j].checked == true){
	     marcado = true;	
	  }
   }
   
   return marcado;  	
}

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.