Foros del Web » Programando para Internet » Javascript »

No me valida el email

Estas en el tema de No me valida el email en el foro de Javascript en Foros del Web. Hola tengo una funcion que no me valida el campo del email... me parece que los la asigancion del valor de la variable cuando entra ...
  #1 (permalink)  
Antiguo 27/10/2004, 09:27
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
No me valida el email

Hola tengo una funcion que no me valida el campo del email... me parece que los la asigancion del valor de la variable cuando entra al if del txt_email no me reconoce.

Primero evaluo si el txt_email esta vacio si es asi asi envio un mensaje y luego ubico el foco en el text caso contrario me valide el CONTENIDO del email.y la expresion regular si esta biennnnn.

que podra ser????????

<html>
<head>
<title></title>
</head>

<SCRIPT>
function valida_informacion(){
with(document.frmInformacion){
if(txt_nomb.value == ""){ // Falta Nombre
alert('¡Por Favor ingrese su Nombre!'); txt_nomb.focus(); return; }

if(txt_email.value == ""){ // Falta E-mail
alert('¡Escriba su Dirección de Correo Electrónico!'); txt_email.focus(); return; }
else {
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);
}
}

if(txt_tele.value == ""){ // Falta Telefono
alert('¡Ingrese un Teléfono de Referencia!'); txt_tele.focus(); return; }

btnOk.disabled = true;
action="enviar_correo.php";
submit();
}
}
</SCRIPT>

<body bgcolor="#ffffff">
<div align="center"> </div>

<table width="770" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#ECF3FB" class="Middle">
<tr>
<th scope="col"><div align="center">
<div align="center"> </div>
<FORM id=frmInformacion name=frmInformacion action=javascript:valida_informacion(); method=post>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="5" bgcolor="#CCCCCC">
<tr>
<th width="143" height="18" scope="col"><div align="right"><span class="Estilo58">Nombre </span></div></th>
<th width="442" scope="col">
<div align="left">
<input name="txt_nomb" type="text" id="txt_nomb" size="50">
</div></th>
</tr>
<tr>
<th scope="col"><div align="right"><span class="Estilo58">Email </span></div></th>
<th scope="col"><div align="left">
<input name="txt_email" type="text" id="txt_email" size="30"> </div></th>
</tr>
<tr>
<th scope="col"><div align="right"><span class="Estilo58">Tel&eacute;fono</span></div></th>
<th scope="col"><div align="left">
<input name="txt_tele" type="text" id="txt_tele" size="15">
</div></th>
</tr>
</table>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr>
<th scope="col">

<INPUT name="btnOk" type=submit id="btnOk" value="Mandar Solicitud" >
</th>
</tr>
</table>
</form>
</div></th>
</tr>
</table>
</body>
</html>


Gracias y saludos a todos
  #2 (permalink)  
Antiguo 27/10/2004, 10:35
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Lo que pasa es que te da un error en el if:

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);
}


el simbolo "valor" no esta definido, imagino que lo que quieres validar es el contenido del campo txt_email, por lo que debes sustituir "valor" por "txt_email.value".

Saludos.
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #3 (permalink)  
Antiguo 27/10/2004, 10:49
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
BUeno he puesto lo que me dijistes y cuando pongo en el txt_email cualquier nombre por ejemplo pedro (nada mas que pedro se salta al text del telefono en otras palabras no me lo evalua).

Gracias y saludos
  #4 (permalink)  
Antiguo 27/10/2004, 11:08
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Ahh, esa es otra historia. Hay que hacer unos pequeños ajustes a tu codigo, por ejemplo, esta version valida todo y si no hay error hace el submit, de lo contrario solo muestra el mensaje...

function valida_informacion(){
var mensaje = "";
with(document.frmInformacion){
if(txt_nomb.value == ""){ // Falta Nombre
mensaje = '¡Por Favor ingrese su Nombre!\n';
txt_nomb.focus();
}

if(txt_email.value == ""){ // Falta E-mail
mensaje += '\n¡Escriba su Dirección de Correo Electrónico!\n';
txt_email.focus();
}
else {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txt_email.value)){
alert("La dirección de email " + txt_email.value + " es correcta.");
} else {
mensaje +="\nLa dirección de email es incorrecta.\n";
}
}
if(txt_tele.value == ""){ // Falta Telefono
mensaje +='\n¡Ingrese un Teléfono de Referencia!\n';
txt_tele.focus();
}
if (mensaje=="") {
btnOk.disabled = true;
action="enviar_correo.php";
submit();
} else { alert(mensaje);return false;}
}
}


Ahora OJO, la forma en que llamas a la funcion no te permite controlar el submit correctamente, lo que deberias hacer es llamar a la funcion en el onsubmit:

<FORM id=frmInformacion name=frmInformacion action="enviar_correo.php" onsubmit="return valida_informacion();" method=post>


por lo que en la funcion no seria necesario cambiar el action ni hacer submit, solo deberias devolver "true" si todo esta correcto, me explico?


saludos y suerte
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #5 (permalink)  
Antiguo 27/10/2004, 11:39
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
lo probare.

Gracias
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 22:22.