Foros del Web » Programando para Internet » Javascript »

Validar email antes de enviar formulario

Estas en el tema de Validar email antes de enviar formulario en el foro de Javascript en Foros del Web. Muy buenas :) que tal ? Ando aquí de nuevo, espero no molestar más. El problemilla que tengo es que he buscado e implementado scripts ...
  #1 (permalink)  
Antiguo 15/08/2010, 12:12
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Mensaje Validar email antes de enviar formulario

Muy buenas :) que tal ?
Ando aquí de nuevo, espero no molestar más.
El problemilla que tengo es que he buscado e implementado scripts en javascript pero no logro que funcione. Lo que quiero es que cuando se inserte una dirección de "correo" (obviamente que no tenga un @ o un .com) salte un alert y diga que no es válida, como todas las demás que hay, pero no logro implementar nada, a ver si alguien me puede echar un cable ya que con javascript soy un poco manta xD.

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>NUBA</title>

<link href="estilo.css" rel="stylesheet" type="text/css">
<script type="text/javascript" SRC="js/javascript.js"></script>

</head>

<body>

<?php

$telf 
$_POST['telefono'];
$cp $_POST['codigo'];
$mail_usu $_POST['email'];
$mail "[email protected]";

    
$header "From: " $mail " \r\n";
    
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
    
$header .= "Mime-Version: 1.0 \r\n";
    
$header .= "Content-Type: text/html";
    
    
$contenido "<img src='http://i38.tinypic.com/2ia3jvn.jpg' border='0' />";

    
$asunto "NUBA - Gracias por su participación.";
    
    if(
$telf == "" && $cp == "" && $mail_usu ==""){
        
$mailok 0;
    }else{
        
$mailok mail($mail_usu$asunto$contenido$header);    
    }

?>

<div class="contenedor">

    <div class="cajas">
        
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
           <?php if($mailok != 1){ ?>
            <form action="javascript:validando()" method="post" name="fvalida" id="fvalida" />    
                <tr>
                    <td width="36%" class="texto">Teléfono</td>
                    <td width="32%" class="texto">Código Postal</td>
                    <td width="32%" class="texto"></td>
                </tr>
    
                <tr>
                    <td><input type="text" name="telefono" class="uno"/></td>
                    <td><input type="text" name="codigo" class="uno" /> </td>
                    <td></td>
                </tr>
                <tr>
                    <td class="texto">email</td>
                </tr>
                <tr>
                    <td colspan="2"><input type="text" name="email" height="27px" class="dos" /></td>
                    <td><input type="submit" value="envía" class="enviar" name="enviar" />
                </tr>
            </form>
                <?php }else{ ?>   
                        <tr>
                            <td width="100%"><div class="texto_gracias">Su email se ha enviado correctamente. Muchas gracias por su participación.</div></td>
                        </tr>
                <?php 
                
}
                
$mailok 0;
                
?>
                
        </table>
      
    </div>

</div><!-- Fin .contenedor -->

</body>
</html>
Código javascript:

Código Javascript:
Ver original
  1. function validando(){
  2.  
  3.     todobien=true;
  4.    
  5.     // Código postal
  6.     var codigopostal;
  7.     codigopostal = document.fvalida.codigo.value;
  8.     if(isNaN(codigopostal) || (codigopostal == "")){
  9.         todobien=false;
  10.         alert("Inserte su código postal.");
  11.     }
  12.    
  13.     if(document.fvalida.codigo.value.length>=6){
  14.         todobien=false;
  15.         alert("Introduzca un código postal válido.");
  16.     }
  17.    
  18.     // Email
  19.     if(document.fvalida.email.value==""){
  20.         todobien=false;
  21.         alert("Inserte su email.");
  22.     }
  23.    
  24.     // Nº teléfono
  25.     var numtelf;
  26.     numtelf = document.fvalida.telefono.value;
  27.     if(isNaN(numtelf) || (numtelf=="")){
  28.         todobien=false;
  29.         alert("El teléfono tiene que tener valores numéricos.");
  30.     }
  31.    
  32.     if(document.fvalida.telefono.value.length>=10){
  33.         todobien=false;
  34.         alert("Introduzca un número de teléfono válido.");
  35.     }
  36.    
  37.  
  38.     // Todo bien   
  39.     if(todobien==true){
  40.         document.fvalida.action="#";
  41.         document.fvalida.submit();
  42.     }
  43. }

Un saludo y muchísimas gracias :D !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #2 (permalink)  
Antiguo 15/08/2010, 13:18
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validar email antes de enviar formulario

Hola

Esto te ayudar´´a

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 15/08/2010, 16:57
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Validar email antes de enviar formulario

Cita:
Iniciado por Adler Ver Mensaje
He intentado ponerla en el mío pero no se que hago mal :S ! no me sale ni na =( !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #4 (permalink)  
Antiguo 15/08/2010, 17:34
 
Fecha de Ingreso: septiembre-2007
Mensajes: 41
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validar email antes de enviar formulario

Hola Jask
estoy igual que vos... mi validación es esta:
Código:
<script>
function valida_envia(){ 
    //valido el nombre 
    if (document.fvalida.nombre.value.length==0){ 
       alert("Tiene que escribir su nombre") 
       document.fvalida.nombre.focus() 
       return false; 
    } 

        //valido el mail 
    if (document.fvalida.email.value.length==0){ 
       alert("Tiene que escribir su e-mail") 
       document.fvalida.email.focus() 
       return false; 
    } 

    //valido el telefono 
    if (document.fvalida.telefono.value.length==0){ 
       alert("Tiene que escribir su telefono.") 
       document.fvalida.telefono.focus() 
       return false; 
    } 

    //valido el celular 
    if (document.fvalida.celular.value.length==0){ 
       alert("Tiene que escribir su celular.") 
       document.fvalida.celular.focus() 
       return false; 
    } 

    //valido el mensaje 
    if (document.fvalida.mensaje.value.length==0){ 
       alert("Tiene que escribir su mensaje.") 
       document.fvalida.mensaje.focus() 
       return false; 
    } 

    //el formulario se envia 
    alert("Muchas gracias por enviar el formulario"); 
    document.fvalida.submit(); 
} 
</script>
y ya probé un montón de cosas pero no logro resolver cómo insertar lo de este post
http://www.forosdelweb.com/f13/problema-validacion-833376/
en mi validación...

a ver si alguien nos tira una línea...
  #5 (permalink)  
Antiguo 16/08/2010, 04:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validar email antes de enviar formulario

Hola

Probad con esto
Código Javascript:
Ver original
  1. var patron = /^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*@[0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,4}$/;
  2. if (!patron.test(document.fvalida.email.value)){
  3. alert("La dirección de email no es correcta.")
  4. return (false)
  5. }
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: email, enviar, formulario
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 23:19.