Ir para conteúdo

POWERED BY:

Arquivado

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

Denis_Uyeda

[Resolvido] Verificar filhos de um determinado componente

Recommended Posts

Olá pessoal! Tenho o seguinte problema:

 

Preciso criar uma validação para verificar se pelo menos um botão de rádio está selecionado em meu formulário, sendo que há vários grupos:

Exemplo:

 

Linha 1

--Radio 1

--Radio 2

--Radio 3

 

Linha 2

--Radio 1

--Radio 2

--Radio 3

 

Esses botões de rádio são criados automáticamente, ou seja, pelo PHP. O que preciso é saber se pelo menos um deles está marcado, mesmo sendo de grupos diferentes.

 

Eu pensei em fazer assim:

-Verifica todos os filhos da linha

-Verifica se o filho é um botão de rádio

-Verifica se esse botão de rádio está marcado. Se sim então passa na validação

 

Mas não sei como fazer para verificar todos os filhos de um determinado componente.

Alguém tem alguma idéia?

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo a validação pode ser feita por PHP tambem, assim torna o aquivo bem mais seguro. Com javascript faça algo assim:

 

<script>
$(document).ready(function(){//Equivalente ao window.onload porem mais rapido
meuform.onsubmit = function(){
	var el = meuform.getElementsByTagName("input"), soma = 0;
	for(var i=0;i<el.length;i++){
		if(
			el[i].type=='radio' && //verifica se o campo é tipo radio
			el[i].checked //verifica se está checado
		){
			soma++; // soma todos os checados
		}
	}
	
	if(soma>0){//Acaso tenha pelo menos um campo selecionado ele valida
		alert("validou");
		return true;
	}

	alert("não validou");
	return false;//Return false para evitar a que o formulario seja submetido
};
});
</script>
<form action="?" id="meuform">
<input type="radio" value="joao">
<input type="radio" value="maria">
<input type="radio" value="joaquim">
<input type="radio" value="manuel">
<input type="submit" value="validar">
</form>

Atenciosamente Silverfox(Guilherme Nascimento)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Guilherme! Desculpe a demora para responder, mas ajudou muito, obrigado!

No entanto, o código só funcionou para mim (testando no Firefox) com algumas alterações. Segue o código completo:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
	function form_submit(){
        var el = document.getElementById("meuform").getElementsByTagName("input");
		var soma = 0;
        for(var i=0;i<el.length;i++){
                if(
                        el[i].type=='radio' && //verifica se o campo é tipo radio
                        el[i].checked //verifica se está checado
                ){
                        soma++; // soma todos os checados
                }
        }
        
        if(soma>0){//Acaso tenha pelo menos um campo selecionado ele valida
                alert("validou");
                return true;
        }

        alert("não validou");
        return false;//Return false para evitar a que o formulario seja submetido				
	}
</script>
</head>
<body>
<form action="?" id="meuform" onsubmit="form_submit()">
<input type="radio" value="joao">
<input type="radio" value="maria">
<input type="radio" value="joaquim">
<input type="radio" value="manuel">
<input type="submit" value="validar">
</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.