Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Capella

com Função de validação de campos em formulario

Recommended Posts

boa tarde gostaria da ajuda de vocês,tenho um formulário com +/- 40 campose todos são obrigatórios, como faço para reduzir a função abaixo em um for ou while, que varra todos os campos do formulário e retorne um alert avisandoq ue todos os campos devem ser preenchidos.a função da abaixo. <script> function valida_form(){ if(document.form.nome.value==""){ alert("Informe Seu nome Completo"); document.form.nome.focus(); return false; } if(document.form.email.value==""){ alert("Informe Seu email Completo"); document.form.email.focus(); return false; } if(document.form.end.value==""){ alert("Informe Seu Endereco Completo"); document.form.end.focus(); return false; } if(document.form.cpf.value==""){ alert("Informe Seu cpf Completo"); document.form.cpf.focus(); return false; } if(document.form.estado_civil.value==""){ alert("Informe Seu Estado Civil Completo"); document.form.estado_civil.focus(); return false; } if(document.form.rg.value==""){ alert("Informe o Nº da sua Identidade Completo"); document.form.rg.focus(); return false; } }</script>vlw pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça algo assim:

 

var campo;campo = new Array;campo[0] = document.getElementById('txt);campo[1] = document.getElementById('txt2');campo[2] = document.getElementById('txt3');for(var i = 0; i < 3; i++){if(campo[i].value == "" || campo[i].value == 0){campo[i].focus();alert("Favor preencher o campo em destaque!");return false;}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw tiago,dessa forma eu ja tinha tentado..funciona, so que ainda tenho que criar um array enorme..mais deve ser a unica forma de fazer isso sem criar um if pra cada campo. vlw pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

É cara para tantos campos assim, não tem muito o que fugir, a melhor maneira que conheço é esta mesmo, se encontrar uma melhor me avise!heheheheAbraço e precisando tamo ai, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Bruno, faça o seguinte:

 

function validateForm(targetForm)	{		form = document.getElementById(targetForm);		for (i=0; i<form.elements.length; i++) 		{			if (form.elements.item(i).value == "")			{				alert("O campo " + form.elements.item(i).id + " é de preenchimento obrigatório.");				setFocus(form.elements.item(i));				return false;			} 		}		return true;	}

Você passa o id do formulário como parâmetro, será feito um loop por todos os elementos do formulário, se o valor de algum elemento for nulo ( = "" ) ele retornará false, jogará um alert na tela e colocará o foco no campo.

 

A partir disso você pode fazer milhões de coisas, essa é só a base.

 

Eu uso esse código em todos os sistemas web que desenvolvo e com mais algumas linhas você pode vereficar campos do tipo e-mail, data, hora, inteiro, decimal, etc...

 

Qualquer coisa estamos ae.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw eduardo vou da uma testada nesse pra ve se consigo configurar aqui. vlw pela ajuda tb tiago... tava fazendo do jeito que colocuo.. so que o problema que tava achando era que se mudasse algum campo ou fosse excluido ou acrescentado eu teria que mexer no script. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala ae eduardo. po testei o que você me passou mais não funcionou não. ele me erro de script e passa batindo enviando o formulário. diz que não da suporte a propriedade ou metodo. na inha. form = document.getElementById(targetForm);o que podeser isso. ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você colocou na chamada dessa função, pelo que entendi é assim:

 

<form id="form" method="POST" onSubmit="return validateForm(this)">

Avisem se estiver errado, ok?

 

PS: Só uma coisa o que o Eduardo postou funciona, desde que nós queremos validar todos os campos do form, isso fica difícil, pois na maioria das vezes, validamos alguns campos e outros não, mas memso assim é um método bem melhor do que o meu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vou postar um código mais funcional com o html. Já responde o apontamento do Tiago com relação a validar todos os campos obrigatoriamente.

 

Código:

 

function submitForm(targetForm)	{		if (validateForm(targetForm)) document.getElementById(targetForm).submit();	}	function validateForm(targetForm)	{		form = document.getElementById(targetForm);		for (i=0; i<form.elements.length; i++) 		{			if (form.elements.item(i).className == "requiredfield")			{				if (form.elements.item(i).value == "")				{					alert("O campo " + form.elements.item(i).id + " é de preenchimento obrigatório.");					form.elements.item(i).focus();					return false;				} 			}		}		return true;	}
Notem que eu uso uma função auxiliar para submeter o formuário caso ele seja validado. O primeiro IF dentro do FOR verifica qual a classe do campo, se for "requiredfield", ou seja, campo requerido, ele faz a validação de preenchimento.

 

Agora o BODY do HTML:

 

<form action="teste.htm" id="frmTeste" method="post">	<input type="text" class="requiredfield" id="txtTeste1" name="txtTeste1" />	<input type="text" class="field" id="txtTeste2" name="txtTeste2" />		<input type="button" onclick="submitForm('frmTeste')" value="vai" /></form>
Eu chamo a função auxiliar de submeter o formulário num botão, passando como parâmeto o ID do formulário. Existem dois campos nele, mas a validação será feita apenas no primeiro, que possui a classe "requiredfield".

 

Qualquer coisa estamos ae.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Excêlente cara, muito bom mesmo, uma boa idéia que você teve, não tinha pensando por esse lado, eu até tinha na primeira função que você fez, mas parei por lá, porque ficava validando tudo, agora com essa sua segunda função tudo se encaixa e é possível...Parabéns

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Então cara, eu nem postei o código que uso pra galera pensar um pouco, mas aqui eu criei um novo atributo nos campos de formulário que validam junto com essa função, por exemplo um campo de e-mail:

 

<input type="text" id="txtEmail" name="txtEmail" validation="email" />

 

Ae dentro daquela função eu verifico o tipo do validation e faço todas as validações. Perdi um tempo legal pra desenvolver isso, mas depois de pronto, você nunca mais vai se preocupar com validação de formulários... é só ir acrescentando funções auxiliares para e-mail, data, hora, inteiro, depois colocar o validation e boa!

 

Abraço

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.