Ir para conteúdo

Arquivado

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

lollipop

Percorrer vários "fieldset" e verificar se algum radio esta c

Recommended Posts

Olá amigos,
eu tenho uma página de enquete no site de uma indústria. Após o consumidor preencher alguns dados básicos, aparece a página com a enquete.
Preciso validar essa página.

A estrutura é assim:

<table id="2nd">
<fieldset>
1 - Pergunta...
<radio id='e1o1' name='e1o1'> Opção 1
<radio id='e1o2' name='e1o2'> Opção 2
<radio id='e1o3' name='e1o3'> Opção 3
</fieldset>

<fieldset>
2 - Pergunta...
<radio id='e2o1' name='e2o1'> Opção 1
<radio id='e2o2' name='e2o2'> Opção 2
<radio id='e2o3' name='e2o3'> Opção 3
</fieldset>
</table>
obs: id e name recebe a fórmula e(número da pergunta)o(numero da opção)

Se algum fildset não tiver algum radio marcado, tal função vai ser chamada.
Obviamente não quero validar manualmente. Mas até agora tenho conhecimento de no máximo percorrer todos fildset

for(var i = 0; i < ($("#2nd").find("fieldset").size()); i++){
$("#2nd fieldset")[i];
}

E sei como verificar se está checado ou não:

.is(':checked')

Alguma mente brilhante para ajudar?
Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites


var valida;

$('#2nd fieldset').each(function(i){

valida = $( this ).eq(0).find('input[type="radio"]:checked').size();

if( !valida ){

alert('Responda a Pergunta '+(i+1));

return false;

}

});

 

if( valida ){

alert('Obrigado!');

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hugo Sóstenes, muito obrigado, era isso mesmo, um código curto, simples e objetivo.
Por fins didáticos, deixe me ver se eu entendi

  • $('#2nd fieldset').each(function(i){ //cada repetição o i recebe +1 ?
  • valida = $( this )
  • .eq(0)//dentro fieldset do determinado laço
  • .find('input[type=radio]:checked')//procura radio marcado
  • .size();//pega a quantia
  • if( !valida ){//se for false (0 = false ?)
  • ...
  • }
  • });

Agradeço a todos pela ajuda.

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.