Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2007, 07:04
Avatar de Superlinux
Superlinux
 
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 21 años
Puntos: 1
Pregunta Validar fecha aaaa/mm/dd

... Hola compañeros de la web ... tengo el siguiente codigo de validacion de fecha aaaa/mm/dd. Pero algo le esta pasando ... ya que no esta realizando lo que se necesita .... Gracias por la ayuda que me puedan brindar.

Código PHP:
<html> 
<
head> 
  <
script language="JavaScript"> 
   
//¿Como puedo validar una o mas fechas escritas en elementos TEXT?

   
function esDigito(sChr){ 
    var 
sCod = sChr.charCodeAt(0); 
    return ((
sCod > 47) && (sCod < 58)); 
   } 

   function 
valSep(oTxt){ 
    var 
bOk = false; 
    var 
sep1 = oTxt.value.charAt(4); 
    var 
sep2 = oTxt.value.charAt(7); 
    
bOk = bOk || ((sep1 == "-") && (sep2 == "-")); 
    
bOk = bOk || ((sep1 == "/") && (sep2 == "/")); 
    return 
bOk; 
   } 

   function 
finMes(oTxt){ 
    var 
nMes = parseInt(oTxt.value.substr(5, 2), 10); 
    var 
nAno = parseInt(oTxt.value.substr(0, 4), 10); 
    var 
nRes = 0; 
    switch (
nMes){ 
     case 
1: nRes = 31; break; 
     case 
2: nRes = 28; break; 
     case 
3: nRes = 31; break; 
     case 
4: nRes = 30; break; 
     case 
5: nRes = 31; break; 
     case 
6: nRes = 30; break; 
     case 
7: nRes = 31; break; 
     case 
8: nRes = 31; break; 
     case 
9: nRes = 30; break; 
     case 
10: nRes = 31; break; 
     case 
11: nRes = 30; break; 
     case 
12: nRes = 31; break; 
    } 
    return 
nRes + (((nMes == 2) && (nAno % 4) == 0)? 1: 0); 
   } 

    function 
valAno(oTxt){ 
    var 
bOk = true; 
    var 
nAno = parseInt(oTxt.value.substr(0)); 
    
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4)); 
    if (
bOk){ 
     for (var 
i = 0; i < nAno.length; i++){ 
      
bOk = bOk && esDigito(nAno.charAt(i)); 
     } 
    } 
    return 
bOk; 
   } 
   
   function 
valMes(oTxt){ 
    var 
bOk = false; 
    var 
nMes = parseInt(oTxt.value.substr(5, 2), 10); 
    
bOk = bOk || ((nMes >= 1) && (nMes <= 12)); 
    return 
bOk; 
   } 
   
   function 
valDia(oTxt){ 
    var 
bOk = false; 
    var 
nDia = parseInt(oTxt.value.substr(8, 2), 10); 
    
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt))); 
    return 
bOk; 
   } 
   
   function 
valFecha(oTxt){ 
    var 
bOk = true; 
        if (
oTxt.value != ""){ 
            
bOk = bOk && (valDia(oTxt)); 
            
bOk = bOk && (valMes(oTxt)); 
            
bOk = bOk && (valAno(oTxt)); 
            
bOk = bOk && (valSep(oTxt)); 
            if (!
bOk){ 
                 
alert("Fecha inválida");
                 
oTxt.value = ""; 
                 
oTxt.focus(); 
            } else 
alert("Fecha correcta"); 
        } 
   } 
</script> 
</head> 
<body> 
  <form name="frm"> 
   Escriba fecha (aaaa/mm/dd): 
   <input type="text" size="10" name="fec"> 
   <br> 
   <input type="button" value="Validar" onclick="valFecha(document.frm.fec)"> 
  </form> 
</body> 
</html> 
.... Donde esta el error
__________________
"La vida sigue su curso, tú toma parte de ella."