Ir para conteúdo

POWERED BY:

Arquivado

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

kklj

[Resolvido] validar email

Recommended Posts

pessoal ja estou ficando doido, to tentando validar um campo de email mas nao to conseguindo. estou usando essa funcao q encontrei aki no forum

function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string"){
		if(er.test(mail)){ return true; }
	}else if(typeof(mail) == "object"){
		if(er.test(mail.value)){
					return true;
				}
	}else{
		return false;
		}
}

e no meu formulario esta assim

<form name="form" id="form" method="post" action="newsletter.php"  target="_self" onsubmit="return checkMail('email')">
			  <table class="newsletter">
				<tr>	   
				  <td><label>Nome</label>
					<input name="nome" type="text"  size="33"  />
				  </td>
				</tr>
				<tr>	   
				  <td><label>E-mail</label>
					<input name="email" id="email" type="text"  size="33"  />
					<input name="submit" type="submit" value="Enviar" class="botao" />
				  </td>
				</tr>
			  </table>
			</form>

so q nao esta fazendo a validacao, esta passando direto

 

se algum puder me ajudar

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qndo for assim, vai debugando com uns alert.

<script type="text/javascript">
function checkMail(e){
	var mail = document.getElementById(e).value;
	alert(mail);
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string")
	{
		if(er.test(mail)){ return true;}
		return false; // estava faltando esse return false aqui..
	}else if(typeof(mail) == "object"){
		if(er.test(mail.value)){
					return true; 
				}
	}	else{
		return false;
		}
}
</script>
			<form name="form" id="form" method="post" action="newsletter.php"  target="_self" onsubmit="return checkMail('email')">
			  <table class="newsletter">
				<tr>	   
				  <td><label>Nome</label>
					<input name="nome" type="text"  size="33"  />
				  </td>
				</tr>
				<tr>	   
				  <td><label>E-mail</label>
					<input name="email" id="email" type="text"  size="33"  />
					<input name="submit" type="submit" value="Enviar" class="botao" />
				  </td>
				</tr>
			  </table>
			</form>
:lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qndo for assim, vai debugando com uns alert.

<script type="text/javascript">
function checkMail(e){
	var mail = document.getElementById(e).value;
	alert(mail);
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string")
	{
		if(er.test(mail)){ return true;}
		return false;
	}else if(typeof(mail) == "object"){
		if(er.test(mail.value)){
					return true; 
				}
	}	else{
		return false;
		}
}
</script>
			<form name="form" id="form" method="post" action="newsletter.php"  target="_self" onsubmit="return checkMail('email')">
			  <table class="newsletter">
				<tr>	   
				  <td><label>Nome</label>
					<input name="nome" type="text"  size="33"  />
				  </td>
				</tr>
				<tr>	   
				  <td><label>E-mail</label>
					<input name="email" id="email" type="text"  size="33"  />
					<input name="submit" type="submit" value="Enviar" class="botao" />
				  </td>
				</tr>
			  </table>
			</form>
:lol:

amigo desculpa pela minha ignorancia, mas como eu faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você testou ?

Eu "ajeitei" o código...

Por exemplo, olha a terceira linha:

alert(mail); // aqui eu vejo se "mail", tem o valor que esperamos
Mas roda esse código ai que eu postei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim sim.. pq eu modifiquei o script:

Original:

function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
Mudei para:

function checkMail(e){
	var mail = document.getElementById(e).value;
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
Eu não entendi o porquê dessa função receber como parâmetro o ID do campo, e depois não acessar corretamente as propriedades dele..

E também estava faltando esse return false:

if(typeof(mail) == "string")
	{
		if(er.test(mail)){ return true;}
		return false;
	}
:lol:

Ficou boa a funçã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.