Foros del Web » Programando para Internet » Javascript »

Validacion de formulario

Estas en el tema de Validacion de formulario en el foro de Javascript en Foros del Web. Hola buenas, veran tengo un pequeño problema que se me hace grande por que soy novato en javascript, a ver si alguien pudiera ayudarme. tengo ...
  #1 (permalink)  
Antiguo 16/03/2014, 13:09
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Validacion de formulario

Hola buenas, veran tengo un pequeño problema que se me hace grande por que soy novato en javascript, a ver si alguien pudiera ayudarme.

tengo un formulario en la que hay dos campos (para simplificar).

1. uno te pide que marques si eres mayor de edad o no mediante un radio button

2. otro para que escriba el nombre de la persona que rellena el formulario.

cuando el formulario se envia, un codigo javascript indica si el campo "nombre" esta rellenado y si no lo esta le sale un mensaje indicandole que tiene que rellenarlo. Esto lo hace perfectamente.

Pero el campo de si eres mayor de edad o no, no me funciona.

En este campo, si hace click en "soy menor de edad", deberia salirle un mesaje que dijera "debes ser mayor de edad".

Y si hace click en "soy mayor de edad", deberia enviar el formulario a su destino.

este es el codigo.

Código HTML:
Ver original
  1. <form id="formContratar" method="post" action="contacto.php" onsubmit="return Validar(this);">
  2.  
  3.  
  4.      <input id="edad" name="edad" type="radio"  value="Mayor" <?php if (isset($edad) && $edad=="mayor") echo "checked";?> > Mayor
  5.                                                
  6.      <input id="edadMenor" name="edad" type="radio" value="Menor" <?php if (isset($edad) && $edad=="menor") echo "checked";?> > Menor
  7.  
  8.      <br><br>
  9.  
  10.  
  11.  
  12.      <input id="nombre" name="nombre" type="text" value="Nombre Completo" size="43" maxlength="100" autocomplete="on" class="inputstyle"
  13.    
  14.     onFocus="if(this.value == 'Nombre Completo') {this.value = '';}"
  15.                        
  16.     onBlur="if (this.value == '') {this.value = 'Nombre Completo';}"/>  
  17.    
  18.     <br><br>
  19.  
  20.  
  21.     <input type="submit" name="submit" value="Enviar" /><br>
  22.  
  23.      
  24. </form>



y el javascript que valida:

Código Javascript:
Ver original
  1. function Validar(f) {
  2.  
  3.     <!--EDAD------------------------------------------------------------------->
  4.  
  5.     if(f.edadMenor.value=="Menor") {
  6.         alert("Debe ser mayor de edad para contratar");
  7.         f.edadMenor.focus();
  8.         return false;
  9.         }
  10.  
  11.  
  12.  
  13.     <!--NOMBRE COMPLETO---------------------------------------------------------->
  14.        
  15.     if(f.nombre.value=="" || f.nombre.value=="Nombre Completo") {
  16.         alert("Por favor escriba su Nombre completo");
  17.         f.nombre.focus();
  18.         return false;
  19.         }
  20.  
  21.  
  22. }


Gracias de antemano.
  #2 (permalink)  
Antiguo 16/03/2014, 13:46
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Validacion de formulario

Antes de que sigas con ese código te recomiendo que la validación la hagas en el servidor (sea PHP, Python o cualquier lenguaje que estes usando). Si lo haces desde JS simplemente cambio el código y lo envío sin necesidad de ser menor de edad.

  #3 (permalink)  
Antiguo 16/03/2014, 14:11
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Validacion de formulario

La razón es simple, solo llamas a dicha función cuando se hace submit.

Última edición por PHPeros; 16/03/2014 a las 14:24
  #4 (permalink)  
Antiguo 16/03/2014, 14:50
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Validacion de formulario

necesito que el usuario seleccione la casilla de soy mayor de edad.

aunque sea mas facil cambiar el codigo y omitir esto , es necesario que lo ponga.
por eso necesito que alguien que sepa. me pueda decir que tengo que rectificar en el codigo este.


esperando ayuda , gracias.
  #5 (permalink)  
Antiguo 16/03/2014, 15:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validacion de formulario

Aquí hay un error de lógica, pues el valor del checkbox de id edadMenor está establecido como Menor, de modo que siempre detectarás su valor como tal.

Podrías dejar marcado el primer checkbox por defecto, de este modo, la comprobación sería así:

Código Javascript:
Ver original
  1. var menor = document.getElementById("edadMenor");
  2.  
  3. if (menor.checked) {
  4.     alert("Debes ser mayor de edad para continuar");
  5.     return false;
  6. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 16/03/2014, 18:33
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Validacion de formulario

Perfecto!!!, ahora me funciona, no solo me funciona sino que tambien lo he entendido.

Y me servirá para aplicarlo mas adelante tambien.

Gracias fenomeno.


Una pregunta mas.. que me ha sembrado un poco la duda.

el compañero que me escribio antes que tu, me dijo que lo de la validacion lo podia hacer de lado del servidor con php por ejemplo.

y me pregunto ... es menos seguro , o podria fallar o esta menos optimizado si esta validacion se hiciera como la estoy haciendo yo, osea haciendolo con javascript???
  #7 (permalink)  
Antiguo 16/03/2014, 18:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validacion de formulario

Lo que dice es cierto, porque cualquier usuario puede desactivar JavaScript de su navegador y con eso, todas las validaciones se van al tacho, algo que no puede ocurrir si validas del lado del servidor. Lo ideal es que lo hagas en ambos lados, pues con respecto al total de usuarios, sólo la minoría sabe que puede saltarse validaciones del lado del cliente, de este modo, abarcas a ambos lados, es decir, del lado del cliente y del servidor y tu aplicación será más segura.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario, funcion, input, php, validacion
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 04:21.