Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   Validacion Fecha JavaScript Problema (http://www.forosdelweb.com/f13/validacion-fecha-javascript-problema-896289/)

theblackshyp 20/03/2011 14:13

Validacion Fecha JavaScript Problema
 
hola gente, estoy haciendo un formulario de registro, en el q es necesario ingresar la fecha de nacimiento mediante 3 listas desplegables o dropdownbox(son: dia mes y año).
bueno lo que necesito hacer es validarlas para que por ejemplo no acepte 31 de febrero. si esto pasa me muestra el error en un label.
hice un script, pero no anda.
Les dejjo acontinuacion el codigo:

Código Javascript:
Ver original
  1. function validar_diamexurtiberea(dia,mes,anio){
  2. switch (mes){
  3.     case 1: return true;break;
  4.     case 2: return validar_febrero(dia,mes,anio);break;
  5.     case 3: return true;break;
  6.     case 4: if(dia==31){return false}else{return true};break;
  7.     case 5: return true;break;
  8.     case 6: if(dia==31){return false}else{return true};break;
  9.     case 7: return true;break;
  10.     case 8: return true;break;
  11.     case 9: if(dia==31){return false}else{return true};break;
  12.     case 10: return true;break;
  13.     case 11: if(dia==31){return false}else{return true};break;
  14.     case 12: return true;break;
  15.     default:alert('NO SIRVE UN JORACAA');
  16. }
  17. }
  18.  
  19. function ano_bi(anio){
  20. if ((anio % 4 == 0) && ((anio % 100 != 0) || (anio % 400 == 0)){
  21. return true;
  22. }else{return false;}
  23. }
  24.  
  25. function validar_febrero(dia,nes,anio){
  26. switch(dia){
  27.     case 31: return false;break;
  28.     case 30: return false;break;
  29.     case 29: if(anio_bi(anio)==true){return true;}else{return false;};break;
  30.     case 28: return true;break;
  31.     default: return true;
  32. }  
  33. }
  34.  
  35. function validar_fecha(){
  36. var dia=document.getElementById('dia').value;
  37. var mes=document.getElementById('mes').value;
  38. var anio=document.getElementById('anio').value;
  39. if((!dia=="")&&(!mes=="")&&(!anio=="")){
  40. dia=parseInt(dia);
  41. mes=parseInt(mes);
  42. anio=parseInt(anio);
  43. var valida=validar_diamexurtiberea(dia,mes,anio);
  44.     if(valida==false){
  45.         document.getElementById('estado').innerHTML="FAIL";
  46.         document.getElementById('error').innerHTML="Ta mail";
  47.     }else{
  48.         document.getElementById('estado').innerHTML="OK";
  49.         document.getElementById('error').innerHTML="";
  50.     }
  51. }else{alert('TODO MAL');}
  52. }

Aqui una parte del codigo php, para q vean como lo llamo(es bien importado el script)
Código PHP:
Ver original
  1. MES<select id="mes" name="meses" onblur="validar_fecha()" title="Ingrese mes de nacimiento">
  2.                 <option value="">Mes</option>
  3.                 <option value="1">Enero</option>
  4.                 <option value="2">Febrero</option>
  5.                 <option value="3">Marzo</option>
  6.                 <option value="4">Abril</option>
  7.                 <option value="5">Mayo</option>
  8.                 <option value="6">Junio</option>
  9.                 <option value="7">Julio</option>
  10.                 <option value="8">Agosto</option>
  11.                 <option value="9">Septiembre</option>
  12.                 <option value="10">Octubre</option>
  13.                 <option value="11">Noviembre</option>
  14.                 <option value="12">Diciembre</option>
  15.             </select>

Hay algo mal no hay duda, pero lo q creo es q hay un error grosero de mi parte ya q recien estoy empezando con javascript.
Si tienen alguna alternativa para mi codigo o alguna otra forma de tratar la fecha no duden en plantearmelo.

Gracias

_cronos2 20/03/2011 17:07

Respuesta: Validacion Fecha JavaScript Problema
 
En la línea 20:
Cita:

if ((anio % 4 == 0) && ((anio % 100 != 0) || (anio % 400 == 0)){
Te falta cerrar el paréntedis. Además:
Cita:

if(dia==31){return false}else{return true};
// ...
if(valida==false)
Equivale a:
Código Javascript:
Ver original
  1. return dia != 31;
  2. // ...
  3. if(!valida)
Saludos (:


La zona horaria es GMT -6. Ahora son las 00:45.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.