Foros del Web » Programando para Internet » Javascript »

Validación de formulario ya no funciona

Estas en el tema de Validación de formulario ya no funciona en el foro de Javascript en Foros del Web. Saludos! Tengo un problema con la validación javascript de un formulario. Un asunto sencillo, lo extraño es que de repente ha dejado de funcionar, el ...
  #1 (permalink)  
Antiguo 19/08/2009, 13:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Validación de formulario ya no funciona

Saludos! Tengo un problema con la validación javascript de un formulario. Un asunto sencillo, lo extraño es que de repente ha dejado de funcionar, el código no ha cambiado, y no entiendo qué sucede.

Mis funciones las defino así:

<script language="javascript" type="text/javascript">
function validarEntero(valor){
//intento convertir a entero.
//si era un entero no le afecta, si no lo era lo intenta convertir
valor = parseInt(valor)

//Compruebo si es un valor numérico
if (isNaN(valor)) {
//entonces (no es numero) devuelvo el valor cadena vacia
return “”
}else{
//En caso contrario (Si era un número) devuelvo el valor
return valor
}
}
function Validar(f)
{
if (f.nombre.value == "")
{ alert("Por favor ingrese su nombre"); f.nombre.focus(); return false; }

if (f.mail.value == "")
{ alert("Por favor ingrese su dirección de e-mail"); f.mail.focus(); return false; }

if (f.edad.value != ""){
edad = f.edad.value
edad = validarEntero(edad)
f.edad.value=edad;
if (edad == "")
{ alert("Tiene que introducir un número entero en su edad, o dejar el campo en blanco"); f.edad.focus(); return false; }
}
}

</script>

Y luego, el formulario se define así (pongo solo el encabezado, ya que es muy largo):

<form id="registrarse" action='bajarmeditaciones.asp' method='post' name="registrarse" onSubmit="return Validar(this)">

Cómo contaba, andubo un par de veces de lo más bien, pero de un momento a otro dejó de validar. Alguna idea, por favor? Gracias!
  #2 (permalink)  
Antiguo 19/08/2009, 16:38
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Validación de formulario ya no funciona

intenta asignando a cada elemento del formulario un id y desde javascript lo buscas como:
document.getElementById('id').value y eso lo colocas en tu if

suerte
  #3 (permalink)  
Antiguo 19/08/2009, 17:04
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Validación de formulario ya no funciona

Muchas gracias Lair, he probado con tu propuesta, pero sigue sin funcionar... Cambiará en algo si le pongo id a todos los campos, incluso los que no me interesa validar? En la modificación que me propones, ya no es necesario pasar el mismo formulario como parámetro a la función, usando "this", no es cierto? De todas formas he probado de las dos maneras, y nada. Gracias igual
  #4 (permalink)  
Antiguo 19/08/2009, 17:25
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Validación de formulario ya no funciona

Por que no intentas cambiar el codigo por algo como esto:
Código javascript:
Ver original
  1. if (f.edad.value != ""){
  2.     edad = validarEntero(f.edad.value)
  3.     if (edad == f.edad.value)
  4.         return true
  5.     else
  6.         { alert("Tiene que introducir un número entero en su edad, o dejar el campo en blanco"); f.edad.focus(); return false; }
  7. }
  #5 (permalink)  
Antiguo 19/08/2009, 17:28
 
Fecha de Ingreso: julio-2008
Mensajes: 91
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Validación de formulario ya no funciona

Hola amigo, estuve probando tu codigo. Solo encontre una falla lo cambie y funciono la validación, te explico:

Código:
function validarEntero(valor){
//intento convertir a entero.
//si era un entero no le afecta, si no lo era lo intenta convertir
valor = parseInt(valor)

//Compruebo si es un valor numérico
if (isNaN(valor)) {
//entonces (no es numero) devuelvo el valor cadena vacia
return ""
}else{
//En caso contrario (Si era un número) devuelvo el valor
return valor
}
Haz como en el texto marcado de rojo, utiliza las comillas dobles que normalmente se utilizan para cadenas en cualquier lenguaje de programación (" ") sin espacios, al momento de retornar el valor.

Yo lo hice asi y funciono, espero que sea la solución.

Saludos...
  #6 (permalink)  
Antiguo 19/08/2009, 17:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Validación de formulario ya no funciona

Gracias Raul. Me parece que esas comillas ya estaban, aunque en una tipografía rara. También probé tus cambios, Sergestux, pero nada aún. Es como si no existiera el "onSubmit", no se llama a la función, y envia el formulario directamente ¡Todo muy extraño!!
  #7 (permalink)  
Antiguo 19/08/2009, 17:53
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Validación de formulario ya no funciona

Te recomiendo que te instales algun depurador de javascript en tu navegador, por que al parecer tu error puede estar en otro lado. Para comprobar que si entra a la funcion validar pon un alert de prueba al inicio de la funcion
  #8 (permalink)  
Antiguo 20/08/2009, 09:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Validación de formulario ya no funciona

Gracias Sergestux! Con el depurador he descubierto un error de sintaxis demasiado común... un cierre "}" de más! El código ya anda a la perfección, 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 14:11.