Ir para conteúdo

POWERED BY:

Arquivado

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

dieef5

Validar Radios. Olhem o código!

Recommended Posts

Olá galera.

 

Preciso muito da ajuda de vcs. Tenho um form grande, com vários com campos de text, textarea e varios radios. Meu código JS valida os input text traquilamente porém os radios ele não valida.

 

Estou tentando incrementar o JS p/ validar os radios mas naup esse código é de 1 programador daqui de onde trabalho que saiu.

 

function validar(item) {	var frm = document.getElementById(item);			for (i=0; i < frm.elements.length; i++)	{					// Validando campos do formulário		if(frm.elements[i].type == "text" || frm.elements[i].type == "password" || frm.elements[i].type == "radio" || frm.elements[i].type == "textarea" || frm.elements[i].type == "select-one")		{			if(frm.elements[i].alt != "no_required"  && frm.elements[i].disabled == false && frm.elements[i].readonly != false)			{				// Limpando o atributo CSS de estilo do campo do form				frm.elements[i].className = "";					// Validando campos de TEXT do formulário				if (frm.elements[i].value == ""){						Erro(frm.elements[i],'');						return false;				}				// Validando campos de TEXT do formulário				if ((frm.elements[i].type == "select-one") && (frm.elements[i].value == 0)){						Erro(frm.elements[i],'Você não selecionou uma opção\n');						return false;				}								// Validando campos de RADIO do formulário				if ((frm.elements[i].type == "radio") && (frm.elements[i].value == 0)){						Erro(frm.elements[i],'Você não selecionou uma opção\n');						return false;				}					// Validar email(verificao de endereco eletrônico)				if (frm.elements[i].name == "c26") {						if (!(/^\w+([\_.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(frm.elements[i].value))){ 								Erro(frm.elements[i], frm.elements[i].name.toUpperCase() + ' inválido!\nDigite novamente\n');								return false;						} 				}									// Validar o numero de telefone				if (frm.elements[i].name == "telefone"  || frm.elements[i].name == "telefone2" || frm.elements[i].name == "celular") {					if (frm.elements[i].value.length < 14) {							Erro(frm.elements[i], frm.elements[i].name.toUpperCase() + ' inválido!\nDigite novamente\n');							return false;					}				}									// Validar o CEP				if (frm.elements[i].name == "cep") {					if (frm.elements[i].value.length < 9) {							Erro(frm.elements[i], frm.elements[i].name.toUpperCase() + ' inválido!\nDigite novamente\n');							return false;					}				}								}		}	} // fim do FOR	return true;}

Aguardo uma ajuda..

 

vlw galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, São nomes diferentes.Tipo. 3 com nome xx,Outros 3 com outro nomee mais uns 5 com nomes diferentes..vlw amigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara nessa parte do seu código onde você valida o radios:

// Validando campos de RADIO do formulário				if ((frm.elements[i].type == "radio") && (frm.elements[i].value == 0)){						Erro(frm.elements[i],'Você não selecionou uma opção\n');						return false;				}

tenta colocar assim

// Validando campos de RADIO do formulário				if ((frm.elements[i].type == "radio") && (frm.elements[i].checked == false)){						Erro(frm.elements[i],'Você não selecionou uma opção\n');						return false;				}

A maneira correta de se verificar um radio é pelo atributo checked, onde ele retorna true caso esteja selecionado e false caso não.

 

Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw a ajuda teste. Mas quando coloquei assim ele não deixou o visitante enviar pq aparece a mensagem de que não selecionou um opção:Tipo:Tenho alguns campos de radios com nomes diferentes alguns tem 6 opções. Fazendo dessa forma mesmo clicando em 1 opção da a mensagem que foi selecionada uma opção :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é porque a sua validação não esta fazendo um tratamento específico, você ta validando tudo o que é radio, então aconselho você usar o atributo name pra fazer uma validação mais específica.

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.