Foros del Web » Programando para Internet » Javascript »

Problema al validar un formulario

Estas en el tema de Problema al validar un formulario en el foro de Javascript en Foros del Web. Hola buenas, antes que nada decir que he buscado por si alguien tenia el mismo problema que yo, pero no he encontrado nada, es por ...
  #1 (permalink)  
Antiguo 23/07/2010, 16:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema al validar un formulario

Hola buenas, antes que nada decir que he buscado por si alguien tenia el mismo problema que yo, pero no he encontrado nada, es por eso que abro un nuevo tema.

Estoy haciendo un formulario simple, y solamente quería validar el primer campo, para que no quede nulo. El caso es que no me funciona para nada, yo creo que accedo bien a los campos, y no se qué es lo que se me puede estar escapando...

Este es el fichero HTML, el formulario:

Código HTML:
Ver original
  1.     <script language="Javascript" src="presentacion/utilidades/validarproyecto.js" ></script>
  2.     </head>
  3. <link rel="stylesheet" href="presentacion/estilo/estilo.css" type="text/css" />
  4.  
  5.  <div id="titulo"><h1>crear proyecto</h1></div>
  6.  <FORM NAME="crearproyecto" id="crearproyecto" method="get/post" ACTION="/presentacion/usuario/form/crearproyecto.php">
  7.     <div id="contenedor">
  8.     <div id="formulario">
  9.  
  10.         <p>titulo<br><input type="text" name="titulo" size="50"></p>
  11.         <p>referencia<br><input type="text" name="referencia" size="50"></p>
  12.         <p>agencia<br><input type="text" name="agencia" size="50"></p>
  13.         <p>año comienzo&nbsp;&nbsp;<SELECT name="a_comienzo"><?php include 'presentacion/utilidades/formularioagno.php'; ?></SELECT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; año final&nbsp;&nbsp;<SELECT name="a_final"><?php include 'presentacion/utilidades/formularioagno.php'; ?></SELECT></p>
  14.         <p>comentarios<br><TEXTAREA NAME="comentarios" ROWS=3 COLS=44></TEXTAREA></p>
  15.         <p>financing<br><input type="text" name="titulo" size="50"></p>
  16.         <p><input type="button" value="Registrar" onclick="valida_envia()"><input type='Reset' value='Borrar'></p>

Como veis, he enlazado bien al archivo validaproyecto.js, que es el siguiente:

Código Javascript:
Ver original
  1. function valida_envia(){
  2.     //valido el nombre
  3.  
  4.     if (document.crearproyecto.titulo.value.length==0){
  5.        alert("Debe introducir un titulo")
  6.        document.crearproyecto.titulo.focus()
  7.        return 0;
  8.     }
  9.  
  10. }

Luego al probar el formulario, dejo vacio el campo para que me avise, y no hace nada. Si alguien puede ayudarme.... lo agradecería... un saludo! y gracias!
  #2 (permalink)  
Antiguo 23/07/2010, 18:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema al validar un formulario

el problema es que las referencias directas, solo la soportan pocos navegadores, úsalo así:

Código Javascript:
Ver original
  1. function valida_envia(){
  2.     //valido el nombre
  3.  
  4.     if (document.forms['crearproyecto'].elements['titulo'].value.length==0){
  5.        alert("Debe introducir un titulo");
  6.        document.forms['crearproyecto'].elements['titulo'].focus();
  7.        return 0;
  8.     }
  9.  
  10. }

notas las colecciones forms y elements, son la manera adecuada, ¿te parece muy largo?, puedes usar document.getElementById('id_titulo').value.length (pero en este caso colocando el atributo id al input )

NOTA: en javascript TODAS las líneas de expresión (no estructuras de flujo/control) terminan en punto y coma (;)

Última edición por maycolalvarez; 23/07/2010 a las 18:32
  #3 (permalink)  
Antiguo 24/07/2010, 05:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema al validar un formulario

Vale, muchas gracias! lo de document.forms['crearproyecto'] no me ha funcionado, pero lo de getElementById funciono perfectamente. Ahora tengo una duda que sera una chorrada, pero no soy capaz de que me mande el formulario, me he dejado algo que no se ejecuta hasta abajo el archivo, porque se queda justo despues de validar el campo referencia. Lo dejo por si alguien lo ve, pero de todas formas muy agradecido!

Código Javascript:
Ver original
  1. function valida_envia(){
  2.    
  3.     if (parseInt(document.getElementById('id_a_final').value)<parseInt(document.getElementById('id_a_comienzo').value)){
  4.        alert("La fecha final no puede ser anterior a la inicial");
  5.        document.getElementById('id_a_comienzo').focus();
  6.        return 0;
  7.     }
  8.     if (document.getElementById('id_titulo').value.length==0){
  9.        alert("Debe escribir un titulo para el nuevo proyecto");
  10.        document.getElementById('id_titulo').focus();
  11.        return 0;
  12.     }
  13.     if (document.getElementById('id_referencia').value.length==0){
  14.        alert("Debe escribir una referencia");
  15.        document.getElementById('id_referencia').focus();
  16.        return 0;
  17.     }
  18.  
  19.     if (document.getElementById('id_agencia').value.length==0){
  20.        alert("Debe escribir una agencia");
  21.        document.getElementById('id_agencia').focus();
  22.        return 0;
  23.     }
  24.    
  25.     alert("Muchas gracias por enviar el formulario");
  26.     document.getElementById('crearproyecto').submit();
  27.     //el formulario se envia
  28.    
  29. }
  #4 (permalink)  
Antiguo 24/07/2010, 06:00
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema al validar un formulario

Nada nada, ya lo tengo resuelto, se me habia olvidado poner un atributo id en uno de los campos del formulario. Ya esta resuelto. gracias!

Etiquetas: 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 17:12.