Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo Diniz

Verificar os radio se preenchidos

Recommended Posts

Boa tarde pessoal,

 

estou com duvidas de como poderia estar fazendo essa validação, uma por saber muito pouco de JS, mas tento sempre, as vezes consigo...

 

Mas então, o que estou fazendo é um formulário que traz 10 perguntas randomicas do banco de dados e para cada pergunta tem alternativas (radio) e estou precisando verificar se o usuário preencheu tds perguntas (se selecionou 1 radio de cada pergunta).

 

Eu estou guardando já em um campo hidden os numeros das perguntas, então no value desse hidden fica algo assim: 3|12|5|10|1|45|54|22|34|45|

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem se é radio button ele só pode marcar um, isso é fato, para cada pergunta os três radios ou dois, quantos forem, precisam estar com o mesmo ID

 

E verificar se ele selecionou algum radio, você faz assim:

http://www.yogodoshi.com/blog/dicas-de-javascript/como-validar-radio-buttons-no-javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Ted, tentei de várias formas e não consigo nada!

 

Em cada questão tenho 4 respostas e estão todas com o mesmo ID só mudando o VALUE de cada um, até sem problemas certo?

 

No JS eu pego as questões que estão no momento pelo hidden que passo e com isso tbm já consigo uma quatidade que irá rolar no for

 

var questions = window.document.getElementById('questions').value; //campo hidden

var question = questions.split("|");

 

for (i = 0; i < question.length-1 ; i++){

 

alert(document.getElementById('quest' + question).checked);

 

}

 

só que no alert sempre vem como false, a não ser que eu selecione o primeiro elemento de cada questão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elas nao podem ter o mesmo ID, mais você pode usar o name para pegar os dados, assim:

 

<script "text/javascript">
function Valida(){
var form = document.formulario;
preencheu = false;
botoes = form.nome_do_radio.length;

for (i=0; i<botoes ;i++){
	if (document.formulario.nome_do_radio[i].checked){
		preencheu = true;
	}
}

if (preencheu == false){
	alert("É necessário escolher uma das opções.");
	return false;
}
else {
	return true;
}
}
</script>

 

o HTML:

	<form method="post" name="formulario" action="#" onSubmit="return Valida();">
   	<input type="radio" name="nome_do_radio" value="teste" /> resposta 1<br>
       <input type="radio" name="nome_do_radio" value="teste2" /> resposta 3<br>
       <input type="radio" name="nome_do_radio" value="teste3" /> resposta 2<br>
       <input type="radio" name="nome_do_radio" value="teste4" /> resposta 4<br>
       <button type="submit">Enviar</button>
   </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, beleza, acho então que estou esquecendo de fazer um loop dentro de outro aqui.

Vou testar e qq coisa posto por aqui!

 

Valew

 

Puts, não faço ideia o que posso estar errando!

 

o HTML:

<form id="FormX" name="FormX" method="post">
   <label>1 - Pergunta 1:</label>
   <div class='questoes'>
   <input type='radio' id='quest_11' name='quest_1' value='1' />1 - resposta 1<br />
   <input type='radio' id='quest_12' name='quest_1' value='2' />2 - resposta 2<br />
   <input type='radio' id='quest_13' name='quest_1' value='3' />3 - resposta 3<br />
   <input type='radio' id='quest_14' name='quest_1' value='4' />4 - resposta 4<br />
   </div>
   <label>2 - Pergunta 2:</label>
   <div class='questoes'>
   <input type='radio' id='quest_21' name='quest_2' value='1' />1 - resposta 1<br />
   <input type='radio' id='quest_22' name='quest_2' value='2' />2 - resposta 2<br />
   <input type='radio' id='quest_23' name='quest_2' value='3' />3 - resposta 3<br />
   <input type='radio' id='quest_24' name='quest_2' value='4' />4 - resposta 4<br />
   </div>
   <label>3 - Pergunta 3:</label>
   <div class='questoes'>
   <input type='radio' id='quest_31' name='quest_3' value='1' />1 - resposta 1<br />
   <input type='radio' id='quest_32' name='quest_3' value='2' />2 - resposta 2<br />
   <input type='radio' id='quest_33' name='quest_3' value='3' />3 - resposta 3<br />
   <input type='radio' id='quest_34' name='quest_3' value='4' />4 - resposta 4<br />
   </div>

   <input type='hidden' name='questions' id='questions' value='1|2|3|' />

<div id="Enviar"><input id="Objeto" name="Objeto" type="hidden" value="Salvar" /><img src="site/images/quiz/bt-enviar.png" style="cursor: pointer;" onClick="ValidarCadastro();"/><BR /><?php echo $Alerta;?></div>

</form>

 

e o JS:

 

function ValidarCadastro(){

   var Form      = window.document.getElementById('FormX');
   var questions = window.document.getElementById('questions').value;
   var question  = questions.split("|");

   for (i = 0; i < question.length-1 ; i++){
       rad = "quest_" + question[i];
       forn = document.FormX;
       //bot = forn.rad.length;
       //alert(bot);

       for(j = 0; j < 4 ; j++){
           if (document.FormX.quest_1[j].checked){
               alert('Preencheu '+ j + ' - '+ i);
           } else {
               alert('PREENCHA '+ j + ' - '+ i);
           }
       }		
   }

   return false;

   Form.submit();

}

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.