Foros del Web » Programando para Internet » Javascript »

Problema simple: Validar campos de formulario(Error de código).

Estas en el tema de Problema simple: Validar campos de formulario(Error de código). en el foro de Javascript en Foros del Web. Hola, bueno resulta que estuve practicando haciendo un script para un formulario...algo simple, solo validar que los campos que 2 campos no esten vacios y ...
  #1 (permalink)  
Antiguo 22/10/2010, 00:19
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 13 años, 10 meses
Puntos: 6
Exclamación Problema simple: Validar campos de formulario(Error de código).

Hola, bueno resulta que estuve practicando haciendo un script para un formulario...algo simple, solo validar que los campos que 2 campos no esten vacios y que avise mediante un mensaje de alerta...
OK..el script valida que no este vacio con su respectivo mensaje

pero mis problemas son 2:

1ro: una vez que me manda el mensaje de alerta, luego de aceptarlo, me envia el formulario. Es decir me sale el mensaje pero envia igual el formulario.

2do: Me sale dos veces el mensaje de "GRACIAS"....


Dejo el script:

Código Javascript:
Ver original
  1. <SCRIPT LANGUAGE="JavaScript">
  2.                 function valida_envia(){
  3.     //valido el nombre
  4.     if (document.fvalida.nombre.value.length==0){
  5.          alert("Tiene que escribir su nombre")
  6.          document.fvalida.nombre.focus()
  7.          return 0;
  8.     }
  9.  
  10.    
  11.  
  12.     //valido el inter�s
  13.     if (document.fvalida.asunto.selectedIndex==0){
  14.          alert("Debe seleccionar un asunto de su contacto.")
  15.          document.fvalida.interes.focus()
  16.          return 0;
  17.     }
  18.    
  19.         //el formulario se envia y da las GRACIAS
  20.     alert("Muchas gracias por enviar el formulario");
  21.     document.fvalida.submit();
  22.    
  23. }
  24. </SCRIPT>
  25.  
  26. [B]Dejo el formulario:[/B]
Código HTML:
Ver original
  1. <form id="form" name="fvalida" method="post" action="valida_contacto.php" onsubmit="return valida_envia(this);">
  2.     <tr><td></td><td>Empresa: </td> <td><input name="empresa" type="text" id="empresa" size="35"  /></td><tr>
  3.     <tr><td></td><td>Cargo: </td> <td><input name="cargo" type="text" id="cargo" size="35"  /></td></tr>
  4.     <tr><td>*</td><td>Nombre Contacto: </td> <td><input name="nombre" type="text" id="nombre" size="35"  /></td></tr>    
  5.     <tr><td>*</td><td>Apellidos: </td> <td><input name="apellidos" type="text" id="apellidos" size="35"  /></td></tr>  
  6.     <tr><td>*</td><td>Tel&eacute;fono: </td> <td><input name="telefono" type="text" id="telefono" size="15" /></td></tr>  
  7.     <tr><td>*</td><td>E-mail: </td> <td><input name="email" type="text" id="email" size="25" /></td></tr>  
  8.  
  9. <tr><td> </td><td> </td><td><br/><input type="submit"  value=" Enviar Formulario " onclick="valida_envia()"/>
  10.             </td></tr>
  11.            

Muchas gracias por el tiempo y espero sus respuestas!!

Saludos!
  #2 (permalink)  
Antiguo 22/10/2010, 04:24
MK2
 
Fecha de Ingreso: enero-2007
Mensajes: 48
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Problema simple: Validar campos de formulario(Error de código).

EDITO:

Varias cosas:

1 - El form está dentro del <table> entre el tag table y tr. Eso está mal.... debería estar fuera.
2 - Hay un tr sin cerrar (el primero).
3 - No tiene sentido utilizar el evento onclick en el botón submit llamando a valida_envia si después haces los mismo en el action del form, por eso te aparecen 2 veces los mensajes. Yo haría onsubmit="valida_envia(this);return false;" y borraría el evento onclick del input submit.


Saludos

Última edición por MK2; 22/10/2010 a las 04:59
  #3 (permalink)  
Antiguo 22/10/2010, 05:35
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: Problema simple: Validar campos de formulario(Error de código).

Cita:
Iniciado por MK2 Ver Mensaje
3 - No tiene sentido utilizar el evento onclick en el botón submit llamando a valida_envia si después haces los mismo en el action del form, por eso te aparecen 2 veces los mensajes. Yo haría onsubmit="valida_envia(this);return false;" y borraría el evento onclick del input submit.
Aparte de cambiar lo del return 0 por return false...

Y es mejor así:

onsubmit="return valida_envia(this)"

Otra cosilla, lo de this es un parámetro que representa el mismo formulario, así que el código se simplificaría cambiando:
document.fvalida por el parámetro que pongas en la declaración de la función, que no has puesto, por ejemplo:

function valida_envia(f)

y dentro...

if (f.nombre.value.length==0){ ...

No me he fijado con detenimiento, pero puedes empezar con esas cosillas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 22/10/2010, 13:27
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Problema simple: Validar campos de formulario(Error de código).

Muchas gracias perfecto funciono a la perfección!!

Saludos =D !!!

Etiquetas: campos, simple
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 23:59.