Jump to content


Photo

Verificar Quantidade Dinâmica De Radios Em Um Form [resolvido!]


  • Faça o login para participar
6 replies to this topic

#1 Luizão

Luizão

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 17/07/2006, 17:12

Boa tarde a todos

Pessoal, alguem sabe como verificar dinamicamente com javascript uma quantidade não específica de radios em um form????

Isto porque os radios são gerados dinamicamente, de acordo com a quantidade de registros no meu banco de dados, um para cada registro, e o usuário precisa marcar pelo menos um radio, caso contrário retorna false. A quantidade vai variar sempre, daí a minha dificuldade em fazer a verificação. Se fosse um número fixo de radios seria moleza! :P

agradeço a atenção de todos!

Edição feita por: Luizão, 19/07/2006, 16:56.


-----------------------------------------------------------------------------------------*
Faça você mesmo o que ninguém fará por você, e aí alguém poderá te ajudar
-----------------------------------------------------------------------------------------*

#2 GCTS

GCTS

    Super Veterano

  • Usuários
  • 278 posts
  • Sexo:Masculino

Posted 17/07/2006, 19:26

Tente criar um contador, toda vez que um elemento for criado dinamicamente, ele é incrementado.

[]'s

Edição feita por: FelipeBSR, 17/07/2006, 19:26.


#3 Luizão

Luizão

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 18/07/2006, 10:58

Fala Felipe, obrigado pela resposta

Na verdade, descobrir quantos radios existem não é a questão, mas sim como fazer o loop percorrer tal quantidade. Estou fazendo assim:

function validaRadios()
{
	var todos = document.forms[0].elements['myradio'].length;
	
	for ( p = 0; p <= todos; p++ ) //suponho que eu teria q usar um loop aqui, mas nao funciona...
	{
		if ( document.forms[0].myradio[p].checked==false )
		{
			alert ('Favor selecionar um radio!');	
			return false;
		}
	}

	return true;
}

var todos = document.forms[0].elements['myradio'].length; // me dá a quantidade de radios

estou tendo problemas ao percorrê-los...

Edição feita por: Luizão, 18/07/2006, 11:07.


-----------------------------------------------------------------------------------------*
Faça você mesmo o que ninguém fará por você, e aí alguém poderá te ajudar
-----------------------------------------------------------------------------------------*

#4 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 18/07/2006, 11:19

E se tentar algo assim:
function blablabla(){
	...
	var myForm = document.forms[0];
	var inputs = myForm.getElementsByTagName("input");
	for(var i = 0; i < inputs.length; i++){
		if(inputs[i].getAttribute("type").toLowerCase() == "radio"){
			/*FAÇA AQUI O QUE DEVE SER FEITO*/
		}
	}
	...
}
Espero ter ajudado! qq coisa, poste mais!
[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#5 Luizão

Luizão

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 18/07/2006, 11:38

Ola Mantu, obrigado pela resposta

nesta linha
if(inputs[i].getAttribute("type").toLowerCase() == "radio"){			/*FAÇA AQUI O QUE DEVE SER FEITO*/		}

o que você faz? verifica se o tipo do input é radio, certo?

nesta caso o retorno será verdadeiro...

adaptei a função, e ela está quase funcionando, ela já verifica quando nenhum radio foi marcado, porém quando eu marco ela continua reclamando....

function blablabla()
{	
	var myForm = document.forms[0];
	var inputs = myForm.getElementsByTagName('input');
	
	for(var i = 0; i < inputs.length; i++)
	{		
		if(inputs[i].getAttribute("type").toLowerCase() == "radio")
		{ 
			if(inputs[i].checked==false)
			{
				alert('favor selecionar um radio');
				return false;
			}
			else
			{
				alert('OK');		
			}
		}		
	} 

	return true;
}

achei que colocando aquele ELSE ali ele repararia que alguém foi marcado, mas nao.... ;)

alguma sugestão?

Edição feita por: Luizão, 18/07/2006, 11:42.


-----------------------------------------------------------------------------------------*
Faça você mesmo o que ninguém fará por você, e aí alguém poderá te ajudar
-----------------------------------------------------------------------------------------*

#6 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 18/07/2006, 12:03

Ah, saquei! Tenta algo assim:
function blablabla()
{	
	var myForm = document.forms[0];
	var inputs = myForm.getElementsByTagName('input');
	
	for(var i = 0; i < inputs.length; i++)
	{
		if(inputs[i].getAttribute("type").toLowerCase() == "radio")
		{ 
			if(inputs[i].checked==true)
			{
				alert('OK');		
				return true;
			}
		}
	}
	alert('favor selecionar um radio');
	return false;
}

[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#7 Luizão

Luizão

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 18/07/2006, 14:02

A-háá!!
E não é que funcionou? :roundhousekick:

Valeu Mantu, brigado pela atenção irmão!
Fica com Deus!

Até mais
Abraço

-----------------------------------------------------------------------------------------*
Faça você mesmo o que ninguém fará por você, e aí alguém poderá te ajudar
-----------------------------------------------------------------------------------------*




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq