Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/09/2011, 18:07
Avatar de jrevilla
jrevilla
 
Fecha de Ingreso: septiembre-2011
Ubicación: Lima, Peru, Peru
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Validar fecha (dd/mm/aaaa) en un input

aver..... si no me equivoco, tienes un input Text y alli quieres escribir una fecha en formato dd/mm/yyyy , pero que al escribir una fecha con ese formato, sea un dia q exista cierto??.... prueba con este codigo =) ...

Código Javascript:
Ver original
  1. <HTML>
  2. <body>
  3. <FORM>
  4. <input name="fecha" type="text" size="10" maxlength="10" onKeyUp = "this.value=formateafecha(this.value);">
  5. </FORM>
  6. <SCRIPT>
  7. function IsNumeric(valor)
  8. {
  9. var log=valor.length; var sw="S";
  10. for (x=0; x<log; x++)
  11. { v1=valor.substr(x,1);
  12. v2 = parseInt(v1);
  13. //Compruebo si es un valor numérico
  14. if (isNaN(v2)) { sw= "N";}
  15. }
  16. if (sw=="S") {return true;} else {return false; }
  17. }
  18. var primerslap=false;
  19. var segundoslap=false;
  20. function formateafecha(fecha)
  21. {
  22. var long = fecha.length;
  23. var dia;
  24. var mes;
  25. var ano;
  26. if ((long>=2) && (primerslap==false)) { dia=fecha.substr(0,2);
  27. if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) { fecha=fecha.substr(0,2)+"/"+fecha.substr(3,7); primerslap=true; }
  28. else { fecha=""; primerslap=false;}
  29. }
  30. else
  31. { dia=fecha.substr(0,1);
  32. if (IsNumeric(dia)==false)
  33. {fecha="";}
  34. if ((long<=2) && (primerslap=true)) {fecha=fecha.substr(0,1); primerslap=false; }
  35. }
  36. if ((long>=5) && (segundoslap==false))
  37. { mes=fecha.substr(3,2);
  38. if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) { fecha=fecha.substr(0,5)+"/"+fecha.substr(6,4); segundoslap=true; }
  39. else { fecha=fecha.substr(0,3);; segundoslap=false;}
  40. }
  41. else { if ((long<=5) && (segundoslap=true)) { fecha=fecha.substr(0,4); segundoslap=false; } }
  42. if (long>=7)
  43. { ano=fecha.substr(6,4);
  44. if (IsNumeric(ano)==false) { fecha=fecha.substr(0,6); }
  45. else { if (long==10){ if ((ano==0) || (ano<1900) || (ano>2100)) { fecha=fecha.substr(0,6); } } }
  46. }
  47. if (long>=10)
  48. {
  49. fecha=fecha.substr(0,10);
  50. dia=fecha.substr(0,2);
  51. mes=fecha.substr(3,2);
  52. ano=fecha.substr(6,4);
  53. // Año no viciesto y es febrero y el dia es mayor a 28
  54. if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) { fecha=fecha.substr(0,2)+"/"; }
  55. }
  56. return (fecha);
  57. }
  58. </SCRIPT>
  59. </body>
  60. </html>


espero haberte ayudado =)

Última edición por jrevilla; 28/09/2011 a las 18:09 Razón: falto terminar el post