Foros del Web » Programando para Internet » Javascript »

Validar form en javasript

Estas en el tema de Validar form en javasript en el foro de Javascript en Foros del Web. Buenas ^^ Pues mi problema es que no sé porqué mi script no consigue validar los campos. Soy novato en php/javascript y agradecería vuestra ayuda. ...
  #1 (permalink)  
Antiguo 14/02/2012, 03:21
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Validar form en javasript

Buenas ^^
Pues mi problema es que no sé porqué mi script no consigue validar los campos. Soy novato en php/javascript y agradecería vuestra ayuda.

//Este es el form con el evento "onsubmit" y la funcion "validar()"
<form id="formulario" name="formulario" onsubmit="validar()" method="post" action="recoger_form.php">

//Este es el boton submit del form
<input type="submit" value="Enviar FORM">

//y aquí os dejo el javascript que no consigo que valide
<script type="text/javascript">
function validar()
{
if(formulario.nombre.value =="")
{
alert('Debes introducir tu nombre');
return false;
}
if(formulario.apellidos.value =="")
{
alert('Debes introducir tus apellidos');
return false;
}
if(formulario.email.value =="")
{
alert('Debes introducir tu email');
return false;
}
if(formulario.sexo.value =="")
{
alert('Debes seleccionar una opción');
return false;
}
if(formulario.edad.value =="")
{
alert('Debes introducir tu edad');
return false;
}
}
</script>

EL caso es que cuando le doy a enviar formulario al archivo, el resultado se me muestra en recoger_form.php pero sólo con los campos que introduje. Es decir los campos que deje en blanco no me mostró error y continuó.
¿Qué me falta para que funcione? Gracias de antemano.
  #2 (permalink)  
Antiguo 14/02/2012, 04:00
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: Validar form en javasript

Hola:

Te falta algo fundamental:

onsubmit="return validar()"

... ...

Y casi se me pasa, que formulario por sí solo no vale:

debe ser precedido por document, o un poco mejor aún document.forms... siempre que solo haya uno... ¡ah!, otra alternativa: document.getElementById("formulario").

O sea que salta la validación por un error.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/02/2012, 04:17
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Validar form en javasript

Gracias por la respuesta :) pero agradecería que me concretaras un poco el sitio donde debo modificarlo, es la primera vez que valido forms y estoy pez.

El /* onsubmit="return validar()" */ debo ponerlo dentro del boton submit o en el <form onsubmit="return validar()">

y lo otro de añadir document. a form, eso no lo entiendo, que hace eso?
Gracias y sorry por mi torpeza :p
  #4 (permalink)  
Antiguo 14/02/2012, 05:32
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Validar form en javasript

Vale ya lo he solucionado :) pero sigo teniendo un pequeño problema. Actualmente tengo así el código:

// Etiqueta Form
<form id="formulario" name="formulario" onsubmit="validar()" method="post" action="recoger_form2.php">

// Boton enviar
<input type="submit" value="Enviar FORM">

// Javascript
<script type="text/javascript">
function validar()
{
if(document.formulario.nombre.value =="")
{
alert('Debes introducir tu nombre');
document.formulario.nombre.focus();
return false;
}
if(document.formulario.apellidos.value =="")
{
alert('Debes introducir tus apellidos');
document.formulario.apellidos.focus();
return false;
}
if(document.formulario.email.value =="")
{
alert('Debes introducir tu email');
document.formulario.email.focus();
return false;
}
if(document.formulario.sexo.value =="")
{
alert('Debes seleccionar una opción');
document.formulario.sexo.focus();
return false;
}
if(document.formulario.edad.value =="")
{
alert('Debes introducir tu edad');
document.formulario.edad.focus();
return false;
}
}
</script>

El caso es que al darle a enviar, me salta el error de campo vacío, pero una vez acepto este mensaje de error, lo acaba enviando y me muestra el resultado con los campos vacíos. ¿ Como hago para que se quede parado y no envíe en caso de vacíos ?
  #5 (permalink)  
Antiguo 14/02/2012, 05:32
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: Validar form en javasript

Hola:

Con tu formulario (modificando el manejador del evento submit)


<form id="formulario" name="formulario" onsubmit="return validar()" method="post" action="recoger_form.php">

...usas id="formulario", y debido a eso puedes referenciarlo con:
document.getElementById("formulario")..

... y también usas name="formulario"... y desde el nombre puedes hacer las siguientes referencias:
document.forms.formulario
document.formulario

...pero lo que estás poniendo, por ejemplo para validar el nombre es:
formulario.nombre.value... y ese formulario no vale sino las otras formas que puse antes.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 14/02/2012, 05:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Validar form en javasript

Entonces, si lo he entendido bien, si quisiera referenciarlo por nombre (name) me quedaría asi:

if (document.forms.formulario.apellidos.value =="")
{
alert('Debes introducir tus apellidos');
document.forms.formulario.apellidos.focus();
return false;
}

Perdón por las molestias, pero empece hace poco a ver php y javascript y estoy perdido aún y este tipo de estructuras con completamente nuevas.
Muchas gracias por todo aún así, me seguire peleando para que salga.
  #7 (permalink)  
Antiguo 14/02/2012, 05:52
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Validar form en javasript

MIIIIL GRACIAAAS!!! ya vaaaa :):) Perfect, me avisa de los campos y se me queda el puntero en el campo y no sigue hasta que relleno todo :DDDDD

Ahora me toca pelearme para que envíe un archivo adjunto tb con el mensaje al action=recoger_form :)

Etiquetas: formulario, funcion, input, php, botones
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 05:57.