Foros del Web » Programando para Internet » Javascript »

Validar email con campo vacio

Estas en el tema de Validar email con campo vacio en el foro de Javascript en Foros del Web. Hola a todos. Veran, tengo este código en un libro de visitas para validar el email (en el caso de que el usuario decida escribirlo) ...
  #1 (permalink)  
Antiguo 15/03/2008, 16:36
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 1 mes
Puntos: 0
Validar email con campo vacio

Hola a todos.
Veran, tengo este código en un libro de visitas para validar el email (en el caso de que el usuario decida escribirlo)

Código:
// Creamos un filtro para la validación del Email   
var valid1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;   
var valid2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;   
  
// Validamos el campo Email utilizando el filtro   
    if (valid1.test(fvalida.email.value) | !valid2.test(fvalida.email.value)) {  
    alert("Tienes que ingresar un Email válido");   
    fvalida.email.focus(); return;   
    }
Mi problema es... si un usuario que ha escrito en el libro de visitas decide no escribir su email... ¿qué tengo que modificar de este código para que continue insertando el mensaje en la base de datos a pesar de no escribir su email?

Muchas gracias.
  #2 (permalink)  
Antiguo 15/03/2008, 19:19
 
Fecha de Ingreso: diciembre-2007
Ubicación: Argentina
Mensajes: 151
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Validar email con campo vacio

Puedes crear una condición que se ejecute solo si el valor del campo email es diferente a una cadena de texto vacía. Es decir si es una cadena de texto vacía (no se ha ingresado nada) no se ejecuta la comprovación.

Código:
if (fvalida.email.value != '') {
    if (valid1.test(fvalida.email.value) | !valid2.test(fvalida.email.value)) {  
    alert("Tienes que ingresar un Email válido");   
    fvalida.email.focus(); return;  
    }
}
Saludos
  #3 (permalink)  
Antiguo 15/03/2008, 19:43
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Validar email con campo vacio

Ante todo gracias por responder, pero esta propuesta no me sirve porque me guarda en la base de datos emails invalidos (sin filtros)... es decir, por ejemplo sin arrobas.

La intención es que funcione el filtro de código en el caso que el usuario quiera insertar su email.

Alguna solución??. Gracias.
  #4 (permalink)  
Antiguo 16/03/2008, 16:14
 
Fecha de Ingreso: diciembre-2007
Ubicación: Argentina
Mensajes: 151
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Validar email con campo vacio

La verad que no entiendo por que se te guardan los email inválidos ya que tienes definido el valid1 y el valid2 como filtro.

Por qué no publicas el código entero y lo vemos, así es más facil.

Saludos
  #5 (permalink)  
Antiguo 16/03/2008, 16:20
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Re: Validar email con campo vacio

codigojavascript tiene razon, si el campo esta vacio no se guarda nada en la base de datos y si se ingresa un mail DEBE entrar a la validacion
  #6 (permalink)  
Antiguo 16/03/2008, 16:57
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Validar email con campo vacio

Gracias por responder, el código que empleo es éste:
Código:
<html>
<head>

<script>

function valida_envia()
{
// Creamos un filtro para la validación del Email   
var valid1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;   
var valid2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;   
  
// Validamos el campo Email utilizando el filtro   
    if (valid1.test(fvalida.email.value) | !valid2.test(fvalida.email.value)) {  
    alert("Tienes que ingresar un Email válido");   
    fvalida.email.focus(); return;   
    } 

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

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


    //el formulario se envia
    alert("la firma se ha mandado");
    document.fvalida.submit();
}
</script>
</head>
<body>

    if($array['email']=="")
    {
        echo '<td align=left valign=top width="250" height="30"><b><font color=red></font> '."&nbsp"."</b></td>";
    }
    else
    {
        echo '<td align=left valign=top width="250" height="30"><b><font color=red>email</font> '.$array['email']."</b></td>";
    }
y el formulario es:

Código:
echo '<form name="fvalida" action=2.php method=post>';
echo 'Nombre <input type="text" name="nombre" size="30" maxlength="100">';
echo "<br><br>";
echo 'Email <input type="text" name="email" size="25" maxlength="100" value="">';

echo "<br><br>";
echo "Mensaje";
echo "<br>";
echo '<textarea cols="30" rows="7" name="mensaje"></textarea>';

echo "<br><br>";

echo '<input type=button value=Pulsame onclick="valida_envia()">';

echo '<input type="Reset" value="Borrar todo">';
echo "</form>";
La idea es que... aunque el usuario no escriba su mail se envie la firma.

Muchas gracias por el interes.
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

SíEste tema le ha gustado a 1 personas




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