Foros del Web » Programando para Internet » Javascript »

Como validar email 2 veces en formulario

Estas en el tema de Como validar email 2 veces en formulario en el foro de Javascript en Foros del Web. Hola amigos! Bueno, en principio siempre aclaro que no soy programadora, sino una diseñadora que copia y pega codigo de los que saben... Ahora bien, ...
  #1 (permalink)  
Antiguo 25/07/2016, 09:34
 
Fecha de Ingreso: agosto-2007
Mensajes: 122
Antigüedad: 16 años, 8 meses
Puntos: 3
Exclamación Como validar email 2 veces en formulario

Hola amigos!

Bueno, en principio siempre aclaro que no soy programadora, sino una diseñadora que copia y pega codigo de los que saben...

Ahora bien, mi cliente me solicitó que quienes envíen mensajes mediante formulario del sitio web deban escribir su email dos veces a la hora de enviar el mensaje. Esto porque muchas veces escriben mal su correo en el primer campo, y luego mi cliente no tiene como contestarles, y me solicitó agregar al formulario la obligación de escribir dos veces el email obviamente en dos campos distintos, y que el segundo campo no permita copy-paste del primer campo sino que deban escribirlo (tipearlo), y que si no coinciden ambos emails ingresados deban corregirlos...

El codigo que estoy usando en el formulario es de este tipo:

<script language="JavaScript">
function validar() {
if (document.form1.nombre.value == "") {
alert("¡Los campos no pueden ingresar vacios!");
document.form1.nombre.focus();
return false;}


if (document.form1.telefono.value == "") {
alert("¡Debe indicarnos su telefono!");
document.form1.telefono.focus();
return false;}


if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.form1.email.value))
{ return (true) }
else { alert("La dirección de email fue ingresada de forma incorrecta.");
document.form1.email.focus();
return (false);}

}
</script><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./Contacto ASESOR-ARQ_files/ga.js" type="text/javascript"></script><script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-11264255-2");
pageTracker._trackPageview();
} catch(err) {}</script>



Amigos, que codigo debo agregar para realizar lo que el cliente me pide?

Desde ya muchas gracias!!!

Lola Lola
  #2 (permalink)  
Antiguo 25/07/2016, 11:27
Avatar de haggenx  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 823
Antigüedad: 17 años, 2 meses
Puntos: 24
Respuesta: Como validar email 2 veces en formulario

no te funciona if((/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.form1.email1.value)) && (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.form1.email2.value)))
__________________
Mi blog informático http://marjuanm.blogspot.mx
Fanpage del blog https://www.facebook.com/pages/Mis-p...36397183215592
  #3 (permalink)  
Antiguo 25/07/2016, 14:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 122
Antigüedad: 16 años, 8 meses
Puntos: 3
Respuesta: Como validar email 2 veces en formulario

Hola haggenx

Pues no, no me funciona No valida el campo email2, como si no estuviera...
  #4 (permalink)  
Antiguo 25/07/2016, 14:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Como validar email 2 veces en formulario

Para evitar que se copie el contenido de la primera caja del email, solo debes detener la ejecución del evento copy:
Código Javascript:
Ver original
  1. document.form1.email1.addEventListener("copy", function(event){
  2.     event.preventDefault();
  3. }, false);

Y para evitar que se pegue el contenido de la primera caja o de otra en la segunda caja del email, solo debes detener la ejecución del evento paste:
Código Javascript:
Ver original
  1. document.form1.email2.addEventListener("paste", function(event){
  2.     event.preventDefault();
  3. }, false);

Como se realiza la misma acción, detener el evento ocurrido utilizando el método .preventDefault(), puedes utilizar una función que ejecutarías en ambos casos:
Código Javascript:
Ver original
  1. function detener(event){
  2.     event.preventDefault();
  3. }
  4.  
  5. document.form1.email1.addEventListener("copy", detener, false);
  6. document.form1.email2.addEventListener("paste", detener, false);

Aunque aparentemente la expresión regular que utilizas es la adecuada, te sugiero utilizar la que se emplea internamente en los <input> de tipo email de HTML5:
Código Regex:
Ver original
  1. /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

Y la evaluación la realizarías así:
Código Javascript:
Ver original
  1. var regex = /^[a-zA-Z0-9.!#$%&&#8217;*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
  2.     email1 = document.form1.email1.value,
  3.     email2 = document.form1.email2.value;
  4.  
  5. if (regex.test(email1) && regex.test(email2)){
  6.     //Instrucciones
  7. }

También puedes utilizar el elemento que mencioné para que evites realizar esta validación, así como el uso del atributo required para impedir que se procese el formulario si alguno de sus campos, que posea dicho atributo, no contenga valor alguno.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 25/07/2016, 14:57
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como validar email 2 veces en formulario

prueba con esto:

Código HTML:
Ver original
  1.     <head>
  2.    
  3.     <script type="text/javascript">
  4.    
  5.     window.onload = function() {
  6.     var mail = document.getElementById("mail2");
  7.         mail.onpaste = function(e){
  8.         e.preventDefault();
  9.         alert('no paste plx!!');
  10.         };
  11.     };
  12.    
  13.     function validarMail(id) {
  14.     var patron = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  15.         if (patron.test(document.getElementById(id).value)){
  16.         return true;
  17.         }
  18.     return false;
  19.     }
  20.    
  21.     function valida(id1, id2){
  22.     var mail1 = document.getElementById(id1);
  23.     var mail2 = document.getElementById(id2);
  24.         if(validarMail(id1) && validarMail(id2) && mail1.value == mail2.value){
  25.         return true;
  26.         }
  27.     return false;
  28.     }
  29.    
  30.     </script>
  31.    
  32.    
  33.     </head>
  34.     <body>
  35.    
  36.         <form method="post" action="" onsubmit="if(!valida('mail1', 'mail2')){ alert('error mails!!'); return false; }">
  37.         <input type="text" value="" name="mail1" id="mail1" /><br/>
  38.         <input type="text" value="" name="mail2" id="mail2" /><br/>
  39.         <input type="submit" value="go!">
  40.         </form>
  41.        
  42.         <br/>
  43.         <?php
  44.        
  45.         echo $_POST["mail1"] ." - ".$_POST["mail2"];
  46.        
  47.         ?>
  48.     </body>
  49. </html>

Última edición por alvaro_trewhela; 25/07/2016 a las 15:08
  #6 (permalink)  
Antiguo 25/07/2016, 16:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 122
Antigüedad: 16 años, 8 meses
Puntos: 3
Respuesta: Como validar email 2 veces en formulario

Muchas gracias a ambos! Estoy probando con los códigos que compartieron

Etiquetas: campo, email, formulario, veces
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 19:04.