Foros del Web » Programando para Internet » Javascript »

¿Cómo agrego una validación de e-mail en una función JavaScript?

Estas en el tema de ¿Cómo agrego una validación de e-mail en una función JavaScript? en el foro de Javascript en Foros del Web. Hola a todos! Soy un novato en desarrollo y tengo una duda respecto a la validación de un e-mail en una función JavaScript que ya ...
  #1 (permalink)  
Antiguo 14/02/2013, 09:23
Avatar de SalParadise  
Fecha de Ingreso: marzo-2012
Ubicación: Buenos Aires
Mensajes: 7
Antigüedad: 12 años, 1 mes
Puntos: 0
Mensaje ¿Cómo agrego una validación de e-mail en una función JavaScript?

Hola a todos! Soy un novato en desarrollo y tengo una duda respecto a la validación de un e-mail en una función JavaScript que ya tengo creada para un formulario muy básico con el que estoy practicando. Les cuento:

Creé una función JS que valida algunos datos (la existencia o no de ellos) en un formulario que que nombré como name="valida_datos_get_frm".

La función es:

Código PHP:
function validarDatosPOST() {

    var 
verificar=true;
            
    if(!
document.valida_datos_post_frm.nombre_txt.value) {
        
alert("El campo nombre es requerido");
        
document.valida_datos_post_frm.nombre_txt.focus();
        
verificar false;
    } else if
        (!
document.valida_datos_post_frm.password_txt.value) {
        
alert("El campo password es requerido");
        
document.valida_datos_post_frm.password_txt.focus();
        
verificar false;
    } else if 
        (!
document.valida_datos_post_frm.sexo_rdo[0].checked && !document.valida_datos_post_frm.sexo_rdo[1].checked) {
        
alert("El campo sexo es requerido");
        
document.valida_datos_post_frm.sexo_rdo[0].focus();
        
verificar false;
    }
            
    if(
verificar) {
        
document.valida_datos_post_frm.submit ();
    }
            

La misma se ejecuta con onclick de la siguiente manera:

Código PHP:
window.onload = function () {
    
document.getElementById("enviar-post").onclick validarDatosPOST;

A esta función necesito agregar un else if que permita validar una dirección de E-MAIL verificando que está correctamente redactada. Intenté de diversas formas tratar de agregar una variable del tipo (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(email)) pero no sucede nada.

Espero que alguien me pueda guiar en este asunto.
Saludos a todos.
  #2 (permalink)  
Antiguo 14/02/2013, 10:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: ¿Cómo agrego una validación de e-mail en una función JavaScript?

Pues la idea es esa, pero asegúrate que la expresión regular que has puesto vale para emails.

Por ejemplo, lo de {2,3,4} debería ser {2,4}, es decir, sólo dos números, el mínimo y el máximo.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/02/2013, 10:48
Avatar de SalParadise  
Fecha de Ingreso: marzo-2012
Ubicación: Buenos Aires
Mensajes: 7
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: ¿Cómo agrego una validación de e-mail en una función JavaScript?

Chuidiang, gracias por tu respuesta. Al ser un novato en este tema y no conocer demasiado (estoy realizando una especie de ejercicio de práctica), no sé cómo debo insertar dicha expresión regular. Intenté lo siguiente pero no se ejecuta el submit del formulario:

Código PHP:
} else if
    (/^
w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3,4})+$/.test(email)){
    
alert("La dirección de email es incorrecta.");

Quizás me puedas dar comentar cómo debería funcionar esa línea específicamente para que tome la validación.

SALUDOS.
  #4 (permalink)  
Antiguo 14/02/2013, 13:53
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: ¿Cómo agrego una validación de e-mail en una función JavaScript?

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. //<![CDATA[
  8. /* script */
  9. function validar(){
  10.    
  11. var emailReg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
  12. var email_ingresado = document.getElementById('email').value;
  13. if(!emailReg.test(email_ingresado)) {
  14. alert('email no válido');
  15. return false;
  16. }
  17. }
  18. //]]>
  19. </head>
  20. <form action="x.html" method="post" onsubmit="return validar();">
  21. <input type="text" id="email" name="email" />
  22. <input type="submit" value="enviar" />
  23. </form>
  24. </body>
  25. </html>
Para la próxima hacé una búqueda más intensiva en FDW, hay numerosas respuestas a eso

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 14/02/2013, 14:18
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: ¿Cómo agrego una validación de e-mail en una función JavaScript?

es mucho mas facil de lo qeu se imaginan yo tenia el mismo problema ya les doy la solucion pero yo lo hago con jquery que es mas facil por cierto amigo SalParadise aprende un poco de jquery...

bueno esta es la solucion:
primero tienes un formulario html?? si no estoy mal y si no tranquilo no importa iual funciona
Código HTML:
Ver original
  1. <tr>
  2. <td>Correo</td>
  3. <td><input type="text" name="txt_mail" value="" size="23" class="txt_mail"/></td>
  4. </tr>
  5. <tr>
  6. <td>Celular</td>
  7. <td><input name="txt_celular" type="text" value="" size="23" maxlength="10" class="txt_celular"/></td>
  8. </tr>
  9. <tr>
  10. <td>Contraseña</td>
  11. <td><input type="password" name="txt_contra1" value="" size="23" class="txt_contra1"/></td>
  12. </tr>
  13. <tr>
  14. <td>
  15. <input name="bt_ingresar" type="submit" class="boton" value="REGISTRAR" />
  16. </td>
  17. </tr>
  18. </form>
ahora aparte (yo lo hago asi) creo el archivo js y meto lo siguiente
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.         $('.txt_celular').numeric();
  3.         var emailreg = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
  4.         $(".boton").click(function (){
  5.              if( $(".txt_mail").val() == "" || !emailreg.test($(".txt_mail").val()) ){
  6.             $(".txt_mail").focus().after("<span class='error'>Ingrese un email correcto</span>");
  7.             return false;
  8.         }
  9.          });
  10. });

y listos pero no olvides tener la libreria de jquery que aunque no quieras tendras que tenerla o referenciarla con la url que google da y el nombre del archivo js que te pase.

tambien puedes cponseguir en internet algoq eu se llama jqueryvalidator que tambien te tendra respuestas y otra cosa nueva y muy buena :D y es html 5 eso te evita todo lo anterior!! que bn averigua sobre input html5.

Lo cierto es que las tecnolias cada ves son mas y no te puedes quedar atras!!
  #6 (permalink)  
Antiguo 14/02/2013, 15:11
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿Cómo agrego una validación de e-mail en una función JavaScript?

¿Cargar todo jQuery para una validación tan sencilla?
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 15/02/2013, 14:55
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 21 años, 10 meses
Puntos: 361
Respuesta: ¿Cómo agrego una validación de e-mail en una función JavaScript?

Hola:

Cita:
Iniciado por Carlangueitor Ver Mensaje
¿Cargar todo jQuery para una validación tan sencilla?
Yo pienso lo mismo.

Aquí hay un sencillo ejemplo sin incluir toda la librería JQuery.

Validar email con javascript

Saludos.


Etiquetas: email, funciones, validacion
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:48.