Ir para conteúdo

POWERED BY:

Arquivado

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

Carcleo

valida email não prossegue

Recommended Posts

Olá pessoal.

 

Tenho a função para validar email abaixo que fica em um arquvo a parte.

valida_email.js

// JavaScript Document
function valida_email(email)
{
    	atPos = email.value.indexOf("@",1);
    periodPos = email.value.indexOf(".",atPos);
    if (
	     (atPos == -1) || 
	     (email.value.indexOf("@",atPos+1) > -1) || 
		 (periodPos == -1) || 
		 (periodPos+3 > email.value.length)
		)
		{
			alert("Teu e-mail foi digitado incorretamente. Verifique se foi digitado com o seguinte padrão: teuemail.value@teuprovedor.finalização");
			email.focus();
			return false;
		}
	else
		{
		   return true;
		}
}

Bom, em outro javascript estou chamando esse função assim:

.........
else if (document.getElementById('mail').value == '') {
       alert('Por favor, qual o e-mail?');
	document.getElementById('mail').focus();
       return false;
   } 
else if (document.getElementById('mail').value.length > 0) {
	valida_email(document.getElementById('mail')); /*AQUI*/
   } 
else if (document.getElementById('mensagem').value == '') {
............

Essa função valida correto, porem, quando o email esta digitado corretamente, aí o return true não prossegue e alinha de validação de baixo(a proxima linha de validação) não é executada e o a validaçao trava o botão enviar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou colocar o return que será true ou false dependendo do que retornar da validação

else if (document.getElementById('mail').value.length > 0) {
       return valida_email(document.getElementById('mail')); /* true ou false */

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara testei lá, o email está validando, mas o textarea é que tem problema. Ele não dá o alert se tentar enviar com a mensagem em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara testei lá, o email está validando, mas o textarea é que tem problema. Ele não dá o alert se tentar enviar com a mensagem em branco.

Não, não.

 

Se eu tirar a validação do email, aí o textarea valida normal.

 

Percebi que se eu usar os termos da função direto dentro das validaçoes e vez de em um arquivo separado dá certo.

 

Mas, será que realmente, não tem como fazer uma função para isso?

// JavaScript Document
function valida_contato(){

  	atPos = document.getElementById('mail').value.indexOf("@",1);
   periodPos = document.getElementById('mail').value.indexOf(".",atPos);

if (document.getElementById('nome').value == '') {
       alert('Por favor, qual seu nome?');
	document.getElementById('nome').focus();
       return false;
   } 
else if (document.getElementById('mail').value == '') {
       alert('Por favor, qual o e-mail?');
	document.getElementById('mail').focus();
       return false;
   } 
   else if (
	      (atPos == -1) || 
		  (document.getElementById('mail').value.indexOf("@",atPos+1) > -1) || 
		  (periodPos == -1) || 
		  (periodPos+3 > document.getElementById('mail').value.length)
		 )
	{
		 alert("Teu e-mail foi digitado incorretamente. Verifique se foi digitado com o seguinte padrão: teuemail@teuprovedor.finalização");
		 document.getElementById('mail').focus();
		 return false;
	}
   else if (document.getElementById('mensagem').value == '') {
       alert('Por favor, escreva a mensagem');
	document.getElementById('mensagem').focus();
       return false;
   } 
else {document.getElementById('form_contato').submit();}
}

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.