Foros del Web » Programando para Internet » Javascript »

validar email de formulario

Estas en el tema de validar email de formulario en el foro de Javascript en Foros del Web. Hola a todos! Tengo un formulario en el que se envían unos datos a través de php a un correo determinado. Ahora quiero validar algunos ...
  #1 (permalink)  
Antiguo 14/04/2012, 15:44
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
validar email de formulario

Hola a todos!

Tengo un formulario en el que se envían unos datos a través de php a un correo determinado.

Ahora quiero validar algunos campos, pero el mail no pude teniendo en cuenta el @ y el dominio.

Les dejo el código que tengo:


Código HTML:
<script>

function registrocliente(){
	//valido el nombre 
   	if (document.clientes.nombre.value.length==0){ 
      	 alert("Ingrese su nombre.") 
      	 document.clientes.nombre.focus() 
      	 return 0; 
   	} 	

      // asi solo toma si tiene caracteres el campo
       if (document.clientes.email.value.length==0){ 
      	 alert("Ingrese su email.") 
      	 document.clientes.email.focus() 
      	 return 0; 
   	} 	

	//el formulario se envia 
	document.clientes.submit() 
}


</script> 

Código HTML:
 <form name="clientes" method="post" action="registro.php">  
  NOMBRE<br />
  <input name="nombre" type="text" /><br /><br />
  EMPRESA<br />
  <input name="empresa" type="text" /><br /><br />
  TEL&Eacute;FONO<br />
  <input name="telefono" type="text" /><br /><br />
  E-MAIL<br />
  <input name="email" type="text" /><br /><br />
  
 <a href="javascript:registrocliente()" ><img src="images/boton.png" name="Image8" width="133" height="39" border="0" id="Image8" /></a>
   </form> 
Espero puedan ayudarme, muchas gracias!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 14/04/2012, 17:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: validar email de formulario

Para validar un email, te aconsejo el uso de una expresión regular y el método test()

Ejemplo
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7.  
  8. var cadena = "xxx@x xx.info"; // reemplazar este valo
  9. var formato = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  10. var resultado = formato.test(cadena);
  11.  
  12. if(resultado != true){
  13. alert('error');
  14. }else{
  15. alert('email valido');
  16. }
  17. </script>
  18. </head>
  19.  
  20. </body>
  21. </html>
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 15/04/2012, 15:47
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: validar email de formulario

hola Emprear!

Gracias por tu ejemplo!

intenté ponerlo dentro de la función que ya tenía, la idea es hacerlo así porque de ahí se haría el envío del formulario, previa validación.

la variable cadena le cambié el valor, pero no entiendo muy bien, en este formulario se cargaran diferentes mails ya que se trata de un form de usuarios quizás no estoy comprendiendo la función.


Código HTML:
<script>

function registrocliente(){
	//valido el nombre 
   	if (document.clientes.nombre.value.length==0){ 
      	 alert("Ingrese su nombre.") 
      	 document.clientes.nombre.focus() 
      	 return 0; 
   	} 	

var cadena = "[email protected]"; // reemplazar este valo
var formato = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var resultado = formato.test(cadena);
 
if(resultado != true){
alert('error');
}else{
alert('email valido');
}
	//el formulario se envia 
	document.clientes.submit() 
}


</script>

el enlace con el que llamo a la función es este [HTML] <a href="javascript:registrocliente()" ><img src="images/boton.png" name="Image8" width="133" height="39" border="0" id="Image8" /></a> 
[/HTML]
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 15/04/2012, 17:19
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: validar email de formulario

Bueno, te explico, el código que puse es solamente como implementar la validación de una dirección de correo utilizando expresiones regulares y test() en javascript

La aplicación de eso a un formulario sería asi, te aclaro además que estoy mofdificando tu sistema porque es poco eficiente, imaginá que ponen un espacio en blanco en "nombre", el valor de la cadena ya no seria 0, por lo tanto pasaría la validación.
Asi mismo es importante eliminar cualquier código html que te sea pasado en los campos

Aplicado a un form quedaría asi

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <style type="text/css">
  8. /*<![CDATA[*/
  9.  
  10. .boton{
  11. background-image: url(boton.png);
  12. width: 30px;
  13. height: 15px;
  14. border: none;
  15. background-color: transparent;
  16. color: transparent;
  17. }
  18.  
  19. label{
  20. width: 150px;
  21. display: inline-block;
  22. }
  23.  
  24. /*]]>*/
  25. <script type="text/javascript">
  26.  
  27. function validar(){
  28. var nombre = document.getElementById('nombre').value;
  29. var email = document.getElementById('email').value;
  30. var email2 = document.getElementById('email2').value;
  31. var formato = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  32.  
  33. // validamos si el campo nombre está vacío o no
  34. nombre = nombre.replace(/(<([^>]+)>)/ig,""); // quitás posible código html
  35. nombre = nombre.replace(/^\s+/g,'').replace(/\s+$/g,'');// limpias espacios en blanco al inicio y final del nombre
  36. if(nombre == ''){
  37. alert('Ingrese su nombre')
  38. return false;
  39. }
  40.  
  41. var v_email = formato.test(email);
  42.  
  43. if((v_email != true)||(email == "")){
  44. alert('Email no válido');
  45. return false;
  46. }
  47.  
  48. var v_email2 = formato.test(email2);
  49.  
  50. if((v_email2 != true)||(email2 == "")){
  51. alert('Email2 no válido');
  52. return false;
  53. }
  54.  
  55. /// Si no hubo ningún error, el form se procesa
  56.  
  57. alert('gracias ' + nombre);
  58.  
  59. }
  60.  
  61. </script>
  62. </head>
  63. <div>
  64. <form action="#" onsubmit="return validar();">
  65. <label for="nombre">Nombre: </label><input type="text" value="" id="nombre" name="nombre" /><br />
  66. <label for="email">Email: </label><input type="text" value="" id="email" name="email" /><br />
  67. <label for="email2">Email 2: </label><input type="text" value="" id="email2" name="email2" /><br />
  68. <input type="submit" class="boton" value="-" />
  69. </form>
  70. </div>
  71. </body>
  72. </html>

Finalmente, si bien javascript puede mejorar la usabilidad del form por parte del cliente, una validación segura requiere ser hecha con un lenguaje del servidor, como php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 16/04/2012, 01:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 38
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: validar email de formulario

Yo lo valido pero usando el framework jquery.validate
Es muy sencillo de usar

Etiquetas: email, formulario, input, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:03.