Foros del Web » Programando para Internet » Javascript »

Validar campos(no me valida la edad)

Estas en el tema de Validar campos(no me valida la edad) en el foro de Javascript en Foros del Web. Que tal amigos: tengo un código...lo e probado pero no me valida la edad, creo que el error esta en la función validar entero(para edad), ...
  #1 (permalink)  
Antiguo 16/05/2012, 21:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 13 años, 5 meses
Puntos: 3
Validar campos(no me valida la edad)

Que tal amigos:

tengo un código...lo e probado pero no me valida la edad, creo que el error esta en la función validar entero(para edad), a pesar de ingresar una edad valida...me muestra el mensade de ingresar edad valida.


Código HTML:
Ver original
  1.       <script type="text/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.       //valido la edad. tiene que ser entero mayor que 18
  11.       edad = document.fvalida.edad.value
  12.       edad = validarEntero(edad);
  13.       document.fvalida.edad.value=edad ;
  14.       if (edad==){
  15.              alert("Tiene que introducir un número entero en su edad.") ;
  16.              document.fvalida.edad.focus()
  17.              return 0;
  18.       }else{
  19.              if (edad<18){
  20.             alert("Debe ser mayor de 18 años.")
  21.             document.fvalida.edad.focus()
  22.             return 0;
  23.             }
  24.      }
  25.  
  26.      //valido el interés
  27.      if (document.fvalida.interes.selectedIndex==0){
  28.             alert("Debe seleccionar un motivo de su contacto.")
  29.             document.fvalida.interes.focus()
  30.             return 0;
  31.      }
  32.  
  33.      //el formulario se envia
  34.      alert("Muchas gracias por enviar el formulario");
  35.      document.fvalida.submit();
  36.  
  37.      function validarEntero(valor)
  38.      {
  39.      //intento convertir a entero.
  40.     //si era un entero no le afecta, si no lo era lo intenta convertir
  41.      var valor = parseInt(valor)
  42.  
  43.      //Compruebo si es un valor numérico
  44.      if (isNaN(valor)) {
  45.             //entonces (no es numero) devuelvo el valor cadena vacia
  46.             return “;
  47.      }else{
  48.             //En caso contrario (Si era un número) devuelvo el valor
  49.             return valor ;
  50.      }
  51.      }
  52. }
  53.  
  54. </head>
  55.  
  56.  
  57. <form name="fvalida">
  58. <tr>
  59.       <td>Nombre: </td>
  60.       <td><input type="text" name="nombre" size="30" maxlength="100"></td>
  61. </tr>
  62. <tr>
  63.       <td>Edad: </td>
  64.       <td><input type="text" name="edad" size="3" maxlength="2"></td>
  65. </tr>
  66. <tr>
  67.       <td>Interés:</td>
  68.       <td>
  69.       <select name=interes>
  70.       <option value="Elegir">Elegir
  71.       <option value="Comercial">Contacto comercial
  72.       <option value="Clientes">Atención al cliente
  73.       <option value="Proveedores">Contacto de proveedores
  74.       </select>
  75.       </td>
  76. </tr>
  77. <tr>
  78.       <td colspan="2" align="center"><input type="button" value="Enviar" onclick="valida_envia()"></td>
  79. </tr>
  80. </table>
  81. </form>
  82.  
  83. </body>
  #2 (permalink)  
Antiguo 16/05/2012, 23:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Validar campos(no me valida la edad)

En primer lugar tenes algunos errores en la script
En la linea 16 haces una comparación pero te falta el 2º elemento
if (edad==){
además esa comparación no tiene mayor sentido, ya que con la función validaEntero() ya tenés resuelto eso
En la linea 48, tenes una comilla invertida extraña.
Ahora, te simplifico la función para chequear que es un numero

Código Javascript:
Ver original
  1. function validarEntero(input){
  2. return !isNaN(input)&&parseInt(input)==input;
  3. }

El código completo quedaría asi

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <title>iiiii</title>
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function valida_envia(){
  9.      //valido el nombre
  10.      if (document.fvalida.nombre.value.length==0){
  11.             alert("Tiene que escribir su nombre")
  12.             document.fvalida.nombre.focus()
  13.             return 0;
  14.      }
  15.  
  16.      //valido la edad. tiene que ser entero mayor que 18
  17.  
  18. var edad = document.fvalida.edad.value  
  19. if(validarEntero(edad)){
  20.  
  21. if(edad < 18){
  22. alert("Debe ser mayor de 18 años.") ;
  23. document.fvalida.edad.focus();
  24. return false;
  25. }
  26.  
  27. } else{
  28. alert("Debe ingresar un número");
  29. document.fvalida.edad.focus();
  30. return false;
  31. }
  32.  
  33.      //valido el interés
  34.      if (document.fvalida.interes.selectedIndex==0){
  35.             alert("Debe seleccionar un motivo de su contacto.")
  36.             document.fvalida.interes.focus()
  37.             return 0;
  38.      }
  39.  
  40.      //el formulario se envia
  41.      alert("Muchas gracias por enviar el formulario");
  42.      document.fvalida.submit();
  43. }
  44.  
  45.  
  46. function validarEntero(input){
  47. return !isNaN(input)&&parseInt(input)==input;
  48. }
  49. //]]>
  50.  
  51. </head>
  52. <form name="fvalida" id="fvalida">
  53. <tr>
  54. <td>Nombre:</td>
  55. <td><input type="text" name="nombre" size="30" maxlength="100" /></td>
  56. </tr>
  57.  
  58. <tr>
  59. <td>Edad:</td>
  60. <td><input type="text" name="edad" size="3" maxlength="2" /></td>
  61. </tr>
  62. <tr>
  63. <td>Interés:</td>
  64. <td><select name="interes">
  65. <option value="Elegir">Elegir</option>
  66. <option value="Comercial">Contacto comercial</option>
  67. <option value="Clientes">Atención al cliente</option>
  68. <option value="Proveedores">Contacto de proveedores</option>
  69.  
  70. </select></td>
  71. </tr>
  72. <tr>
  73. <td colspan="2" align="center"><input type="button" value="Enviar" onclick="valida_envia()" /></td>
  74. </tr>
  75. </form>
  76. </body>
  77. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 17/05/2012, 00:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Validar campos(no me valida la edad)

Gracias por responder:

Me funciona perfecto:

pero me caben dudas respecto de esto:

Código HTML:
Ver original
  1. function validarEntero(input){
  2. return !isNaN(input)&&parseInt(input)==input;
  3. }

la función tiene como parametro un input?....
Y que retorna?..ya que dice !isNaN ...y eso evalúa si es un entero o no.

gracias!
  #4 (permalink)  
Antiguo 17/05/2012, 01:15
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Validar campos(no me valida la edad)

Cita:
Iniciado por rpichinu Ver Mensaje
Gracias por responder:

Me funciona perfecto:

pero me caben dudas respecto de esto:

Código HTML:
Ver original
  1. function validarEntero(input){
  2. return !isNaN(input)&&parseInt(input)==input;
  3. }

la función tiene como parametro un input?....
Y que retorna?..ya que dice !isNaN ...y eso evalúa si es un entero o no.

gracias!
input es tan solo el nombre de la variable(podría llamarse de otra forma), lo que sucede es que esa función es específica para verificar que el valor de un campo (input) de un form es un numero entero
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 17/05/2012 a las 01:22

Etiquetas: formulario, html, input, validar
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 07:24.