Jump to content


Photo

Validar radio


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

#1 Luizão

Luizão

    Novato no fórum

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

Posted 18/06/2006, 15:36

Boa tarde a todos, o Brasil acabou de vencer a Australia por 2 X 0 !!!!!!!!!!! 8-))[color=#FF0000]

Seguinte: tenho um formulário que contém um número dinâmico de botões do tipo radio, este número poderá variar sempre, pois como eu disse é dinâmico. O meu problema está justamente aí, porque, como não sei quantos radios haverão, não estou conseguindo criar um javascript para verificar se o usuário marcou pelo menos um destes radios. Pois se nenhum radio for marcado o form não pode ser enviado, e deverá exibir uma alert.
Ja tentei de diversas maneiras, com loop for, loop while, mas doesn´t work!!!!
Tentei também com document.forms[0].elements['meuRadio'].checked, mas doens´t work too...

Por favor alguem me ajuda ae, pois é urgente!!!

Obrigado a todos e abraço 8-))

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

#2 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 18/06/2006, 16:13

Pois é, que chato né? =/

Mas vamos a dúvida
http://forum.wmonlin...howtopic=124508
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#3 Guilherme Blanco

Guilherme Blanco

    Loading...

  • Conselheiros
  • 891 posts
  • Sexo:Masculino
  • Localidade:São Carlos - SP/Brasil
  • Interesses:Programação Web e minha namorada (Maria Camila).

Posted 18/06/2006, 23:22

Caso tenha interesse... fiz uma função pra percorrer elementos de um formulário e alertar sobre todos os itens definidos e selecionados.

Talvez seja interessante vc analisar e quem sabe extrair algo.

function setFormParam(oFormName) {
	if (typeof oFormName == "string") {
		oFormName = document.forms[oFormName] || document.getElementById(oFormName);
	}

	for (var i = 0; i < oFormName.elements.length; i++) {
		var el = oFormName.elements[i];

		if (el.type && el.type != undefined) {
			switch (el.type) {
				case "text": case "password": case "hidden":
				case "textarea": case "button": case "submit":
					alert(el.name + " = " + el.value);
					break;

				case "select-one":
					if (el.selectedIndex >= 0)
						alert(el.name + " = " + el.options[el.selectedIndex].value);

					break;
					
				case "select-multiple":
					var a = [];
					
					for (var j = 0; j < el.options.length; j++) {
						if (el.options[j].selected)
							a.push(el.options[j].value);
					}
					
					alert(el.name + " = " + a.join(", "));
					break;
					
				case "checkbox": case "radio":
					if (el.checked || el.selected)
						alert(el.name + " = " + el.value);

					break;
					
				default:
					// Does nothing
					break;
			}
		}
	}
}


Ainda assim, queria ilustrar o porquê você não consegue acessar os elementos radio com mesmo name...

document.forms["form_name"].elements["radio_name"]

Teoricamente, você deveria acessar um array... e dessa forma, faria isto:

document.forms["form_name"].elements["radio_name"][3]

Para acessar o 4o. elemento "radio_name". No entanto, isto está incorreto e você provavelmente receberá um belo undefined.

Ao invés de acessar um elemento específico usando o ArrayList (elements), você tem que acessar o Array de elementos com o nome "radio_name", e não tentar acessar um único elemento.

Dessa forma, o que você realmente deve fazer é isto:

document.forms["form_name"].radio_name[3]

E isto acessará corretamente o elemento desejado.


Espero ter ajudado...

[]s,
<script language="WebFórum">
// Dados:
Nome("Guilherme Blanco");
Localidade("São Carlos - SP/Brasil");
Cargo("Manutenção");
</script>




1 user(s) are reading this topic

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

IPB Skin By Virteq