Foros del Web » Programando para Internet » Javascript »

Validar email sin alert

Estas en el tema de Validar email sin alert en el foro de Javascript en Foros del Web. hola. tengo esta función por medio de la cual valido que los campos de mi formulario no estén vacíos y no utilizo el típico alert, ...
  #1 (permalink)  
Antiguo 09/04/2007, 09:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Validar email sin alert

hola. tengo esta función por medio de la cual valido que los campos de mi formulario no estén vacíos y no utilizo el típico alert, sino que aparecen debajo del campo de mi formulario. la función que utilizo es la siguiente:
en el head:
Código HTML:
function valida(c)
{
var i,v;
if(c)
 {
 i=c.name+"obl";
 (c.value.length<=0)?v="visible":v="hidden";
 document.getElementById(i).style.visibility=v;
 }
}
luego, en el formulario tengo:
Código HTML:
email:
<input type="text" name="email" onBlur="valida(this);">
<span id="emailobl" style="visibility:hidden;"><b>El campo 'email' es obligatorio</b></span>
nombre:
<input type="text" name="nombre" onBlur="valida(this);">
<span id="nombreobl" style="visibility:hidden;"><b>El campo 'nombre' es obligatorio</b></span> 
lo que yo quiero es validar también dos cosas:
la primera, validar que el email introducido es un email, es decir, que no pongan 'aaaaaa' y pueda enviar el formulario sino que al menos lleve el '@'.
la segunda, que ambos campos obliguen a un mínimo de 5 caracteres para poder continuar, si no, no puede enviar el formulario.
y que esas validaciones me salgan no en el alert si no como lo tengo. cómo lo hago?
  #2 (permalink)  
Antiguo 09/04/2007, 09:52
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Re: Validar email sin alert

Aqui tienes un ejemplo con expresiones regulares:
http://www.aulambra.com/ver2.asp?id=87&tipo=Codigo
Código:
<script>
 function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
   alert("La dirección de email " + valor    + " es correcta.") 
   return (true)
  } else {
   alert("La dirección de email es incorrecta.");
   return (false);
  }
 }
</script>
salu2
  #3 (permalink)  
Antiguo 09/04/2007, 09:58
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Validar email sin alert

hola. gracias por la respuesta. pero yo necesito que la advertencia no venga con el tipico alert, es decir, que no salga el popup de alerta. es necesario usar como tengo la función programada. alguna idea?
  #4 (permalink)  
Antiguo 09/04/2007, 10:11
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Validar email sin alert

Que tal dogduck.

Creo que ya tienes solucionado la mayor parte de tu problema, sólo es agregar un poco de imaginación y listo. Hay que que mezclar tu solución con la solución de dogduck, algo como esto:
Código:
 <script>

 function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){      return (true)
  } else {
   return (false);
  }

//Para validar emails.
function valida(c)
{
var i,v;
if(c)
 {
 i=c.name+"obl";
 (c.value.length<5 &&  !validarEmail(c) )?v="visible":v="hidden";
 document.getElementById(i).style.visibility=v;
 }
}
 }

</script>
Saludos y suerte!
  #5 (permalink)  
Antiguo 09/04/2007, 10:37
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Validar email sin alert

hola. si utilizo la última función que me dáis, la de daniel00, me da el error:
"se esperaba un objeto"

el form tiene estos datos:
Código HTML:
<form method="post" action="procesar.php" name="clientes"> 
lo digo porque no sé qué son los datos valor y test de esta función:

Código HTML:
function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){      return (true)
  } else {
   return (false);
  }
  #6 (permalink)  
Antiguo 10/04/2007, 00:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Validar email sin alert

alguien sabe por qué me da ese error?
  #7 (permalink)  
Antiguo 10/04/2007, 00:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar email sin alert

Hola:

La validación "verdadera" deberías hacerla desde el tag form y el evento submit (onsubmit), aunque en vista de los mensajes vistos y lo que tienes, supongo que puedes cambiar la validación del email aparte:

Código:
<input type="text" name="email" 
onblur="document.getElementById('emailobl').style.visibility =
 (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this.value)) ? 'hidden' : 'visible'">
<span id="emailobl" style="visibility:hidden;"><b>El campo 'email' es obligatorio</b></span>
Sobre test, es un método que "testea" expresiones regulares (lo que está entre las 2 barras "/[entre estos corchetes la expresión regular]/") que supongo que está bien escrita...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 08:10.