Foros del Web » Programando para Internet » Javascript »

Formulario / Validar mediante Javascript

Estas en el tema de Formulario / Validar mediante Javascript en el foro de Javascript en Foros del Web. No consigo que funcione el código de validación. A ver si alguien puede ayudarme a encontrar el problema... Gracias. HTML <form name="form" method="post" action="enviar-correo.html"> <label>Nombre:</label> ...
  #1 (permalink)  
Antiguo 24/07/2011, 04:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 9
Formulario / Validar mediante Javascript

No consigo que funcione el código de validación. A ver si alguien puede ayudarme a encontrar el problema... Gracias.

HTML


<form name="form" method="post" action="enviar-correo.html">
<label>Nombre:</label>
<input type="text" name="nombre" id="nombre"/>
<label>Dirección:</label>
<input type="text" name="direccion" id="direccion"/>
<label>Teléfono:</label>
<input type="text" name="telefono" id="telefono"/>
<label>Edad:</label>
<input type="text" name="edad" id="edad"/>
<label>Email:</label>
<input type="text" name="email" id="email"/>
<div class="submit-wrapper">
<input type="button" value="Enviar" name="submit" class="submit" onclick="validar()" />
<input type="reset" value="Borrar" name="reset" class="submit" />
</div>
</form>


JAVASCRIPT


function validar(){
var ok;
var msg;
msg = '';
ok ='si';

if(document.getElementById('nombre').value==''){
ok = 'no';
msg = msg + 'El nombre no puede estar vacío.\n'
}

re=/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.{a-z0-9-]+)*(.[a-z]{2,3})$/
if (!re.exec(document.getElementById('email').value)) {
ok = 'no';
msg = msg + 'El email está vacío o mal insertado.\n'
}

re=/^([0-9])*$/
if (!re.exec(document.getElementById('edad').value)){
ok = 'no';
msg = msg + 'La edad está mal insertada.\n'
}

if(ok == 'si'){ /* comprobamos si hay error */
document.form.submit() /* enviamos formulario */
}else{ /* si hay errores */
alert(msg) /* lo mostramos en un mensaje */
}
}
}
__________________
– You're on your own again.
  #2 (permalink)  
Antiguo 24/07/2011, 04:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Formulario / Validar mediante Javascript

Gracias a Firebug di con el error. Una simple llave sobraba...
__________________
– You're on your own again.
  #3 (permalink)  
Antiguo 24/07/2011, 05:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Formulario / Validar mediante Javascript

Hola:

Entiendo que hayas encontrado el error, pero no entiendo el sentido del formulario, ya que con el método post solo lo puede procesar un lenguaje de servidor (asp, php, perl...), y el action es un html ¿?

Si es algo "enmascarado" y tienes ese lenguaje, debes procurar que se valide principalmente en el servidor, y ya puestos, al no tener un botón submit, el formulario es "no-accesible" ya que quien desactive javascript jamás lo podrá enviar...

Lo correcto es usar un botón submit y programar el manejador de evento asociado al envío (onsubmit), enviando false para cancelarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 24/07/2011, 05:15
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Formulario / Validar mediante Javascript

¿No entiendes el sentido del formulario? Pues es el código de mi profesor de Javascript...
__________________
– You're on your own again.
  #5 (permalink)  
Antiguo 24/07/2011, 05:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Formulario / Validar mediante Javascript

Por favor, si sabes el "sentido correcto" del formulario deletréamelo como a una niña pequeña, porque soy aún ignorante en el funcionamiento de Javascript (empiezo el módulo tras PHP). A mí me extrañó que usara el onclick en vez de onsubmit, aplicándolo a un button en vez de a un submit, pero no sé...
__________________
– You're on your own again.
  #6 (permalink)  
Antiguo 24/07/2011, 05:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Formulario / Validar mediante Javascript

Se tata de un formulario ficticio, supongo que eso explica que el ejercicio consista en "validar" y no enviar... De todas formas, insisto: dime la forma correcta de hacerlo para aprender. Gracias.
__________________
– You're on your own again.
  #7 (permalink)  
Antiguo 25/07/2011, 10:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Formulario / Validar mediante Javascript

Hola:

Debes ser un poco más paciente; sobre formularios te puedo pasar este enlace: El abc de los formularios...

Resumiendo: Las validaciones "correctas" son las que se programan con el evento de envío; pero siempre usar botones del tipo submit ya que de otra forma no se enviará nada con errores en el código o simplemente desactivando javascript (o usando un navegador que no lo soporte [sería realmente raro]).

En el tutorial del enlace creo que lo comento mejor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: html, mediante, formulario
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 18:32.