Foros del Web » Programando para Internet » Javascript »

Formulario sale de validación con False pero continua la accion

Estas en el tema de Formulario sale de validación con False pero continua la accion en el foro de Javascript en Foros del Web. Hola, Intento hacer una validación de un formulario. La primera validación (nombre) sólo exige que el campo mida al menos 2 caracteres y funciona bien, ...
  #1 (permalink)  
Antiguo 07/12/2009, 13:44
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 0
Formulario sale de validación con False pero continua la accion

Hola,

Intento hacer una validación de un formulario. La primera validación (nombre) sólo exige que el campo mida al menos 2 caracteres y funciona bien, pero la segunda (email) cuando da error sale por false pero aún así se ejecuta.
No se mucho JS, estoy aprendiendo, pero la teoría que he leido dice que si la validación sale por "return false" no puede nunca ejecutarse la acción con lo cual alucino.
(He intentado incluir el código pero el foro no me deja porque dice que incluyo direcciones web, intentaré publicarlo también).
  #2 (permalink)  
Antiguo 07/12/2009, 14:35
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Formulario sale de validación con False pero continua la accion

inserta tu codigo y a las url que tengas retirales el http://www
  #3 (permalink)  
Antiguo 07/12/2009, 15:22
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Formulario sale de validación con False pero continua la accion

Hola,

El código de la validación es :

function vacio(cadena) {
if (cadena.length < 2)
{
alert("Escriba por su nombre, por favor");
correo.visitor.focus();
return;
}
}

/* dice si cadena es un email ([email protected][.alfanum]) o no, don- */
/* de alfanum son caracteres alfanumericos u otros */
function isMail(Cadena) {

// alert("CADENA : "+Cadena);

Punto = Cadena.substring(Cadena.lastIndexOf('.') + 1, Cadena.length) // Cadena del .com
Dominio = Cadena.substring(Cadena.lastIndexOf('@') + 1, Cadena.lastIndexOf('.')) // Dominio @lala.com
Usuario = Cadena.substring(0, Cadena.lastIndexOf('@')) // Cadena lalala@
Reserv = "@/º\"\'+*{}\\<>?¿[]áéíóú#·¡!^*;,:" // Letras Reservadas

// Añadida por El Codigo para poder emitir un alert en funcion de si email valido o no
valido = true

// verifica qie el Usuario no tenga un caracter especial
for (var Cont=0; Cont<Usuario.length; Cont++) {
X = Usuario.substring(Cont,Cont+1)
if (Reserv.indexOf(X)!=-1)
valido = false
}

// verifica qie el Punto no tenga un caracter especial
for (var Cont=0; Cont<Punto.length; Cont++) {
X=Punto.substring(Cont,Cont+1)
if (Reserv.indexOf(X)!=-1)
valido = false
}

// verifica qie el Dominio no tenga un caracter especial
for (var Cont=0; Cont<Dominio.length; Cont++) {
X=Dominio.substring(Cont,Cont+1)
if (Reserv.indexOf(X)!=-1)
valido = false
}

// Verifica la sintaxis básica.....
if (Punto.length<2 || Dominio <1 || Cadena.lastIndexOf('.')<0 || Cadena.lastIndexOf('@')<0 || Usuario<1) {
valido = false
}

// Añadido por El Código para que emita un alert de aviso indicando si email válido o no

alert("Valido : "+valido);
if (valido) {
return true;
} else {
document.correo.visitormail.focus();
alert('Email no válido.');
return false;
}
}

// ejemplo validacion formulario
function ValidaCampos(form)
{
document.correo.pais.value = geoip_country_name();
alert('Pais : '+document.correo.pais.value);

if(document.correo.visitor.value.length < 2)
{
document.correo.visitor.focus();
alert("Escriba por su nombre, por favor");
return false;
} else {
isMail(document.correo.visitormail.value);
}
}


La llamada : <form method="post" id="correo" name="correo" action="M03-eMail-Enviado.php" onSubmit="return ValidaCampos(this)"/>
.....
<input type="submit" name="Submit" value="Enviar" style="margin-left:130px;">

Última edición por caricatos; 07/12/2009 a las 16:14
  #4 (permalink)  
Antiguo 07/12/2009, 15:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Formulario sale de validación con False pero continua la accion

Hola ylodis

¿Podrías usar un color que se lea peor? Gracias.

http://www.forosdelweb.com/f13/nuevo...codigo-625994/

Saludos,
  #5 (permalink)  
Antiguo 07/12/2009, 16:08
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Formulario sale de validación con False pero continua la accion

Hola,

Lo siento, mi intención era la contraria, que se distinguiera bien el código que se leyera bien. Si algún moderador puede cambiar a otro color mejor, se lo agradecería.
  #6 (permalink)  
Antiguo 07/12/2009, 16:17
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Formulario sale de validación con False pero continua la accion

Hola:

Espero que en "Blue" se vea mejor (al menos eso me parece), aunque se supone que deberías tener un botón para editar tu mensaje (dinos si lo tienes...)

Bueno, ahora leeré el mensaje

Saludos :arriba.
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 07/12/2009, 16:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Formulario sale de validación con False pero continua la accion

Hola:

A groso modo, como respuesta rápida, veo que debería ser en ValidaCampos(form)... poner:

returnisMail(document.correo.visitormail.value);

Creo que el retun es importante...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 07/12/2009, 16:30
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Formulario sale de validación con False pero continua la accion

creo que deberia ser algo asi:

Código javascript:
Ver original
  1. function ValidaCampos(form){
  2.  document.correo.pais.value = geoip_country_name();
  3.  alert('Pais : '+document.correo.pais.value);
  4.  if(document.correo.visitor.value.length < 2){
  5.   document.correo.visitor.focus();
  6.   alert("Escriba por su nombre, por favor");
  7.   return false;
  8.  }else if(!isMail(document.correo.visitormail.value)){ return false;
  9.  }else{ return true; }
  10. }

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 07/12/2009, 16:33
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Formulario sale de validación con False pero continua la accion

Hola,

Gracias por la modificación y la respuesta.

¿Podrias explicar mejor el cambio ?No entiendo bien donde o en vez de que debe decir "returnisMail(document.correo.visitormail.value);"
y supongo que desde luego cualquier cosa que aluda al return es importante.
  #10 (permalink)  
Antiguo 07/12/2009, 16:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Formulario sale de validación con False pero continua la accion

Hola:

En mi código, falta separar la línea:

Código:
return isMail(document.correo.visitormail.value);
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 07/12/2009, 16:41
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Formulario sale de validación con False pero continua la accion

Hola,

Gracias MarterOjitos, eres desde luego un Master, ahora funciona bien.

Lo unico que me queda es si podrias explicarme porque ahora va bien y que hacía mal antes. Supongo que sería un error muy básico, pero en JS soy bastante nobato.
  #12 (permalink)  
Antiguo 07/12/2009, 16:52
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Formulario sale de validación con False pero continua la accion

por que la funcion isMail te retorna true si todo va bien, pero hace un alert, un focus y luego te retorna false, pero en tu funcion ValidaCampos no evaluavas el retorno.... por eso mi gran amigo caricatos te dijo que le pusieras un return.

espero me haya explicado bien...... y suerte en todo.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
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:05.