Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2009, 13:27
Avatar de kaninox
kaninox
 
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 6 meses
Puntos: 49
validar fecha en array

holas gente, tengo un validador de fecha y anda bien pero lo necesito para validar ahora inputs que se me generan en arrays y no me funciona alguna ayuda, para esto? mediante javascript...

saludos...

validafecha.js
Código javascript:
Ver original
  1. function esDigito(sChr){
  2.     var sCod = sChr.charCodeAt(0);
  3.     return ((sCod > 47) && (sCod < 58));
  4.    }
  5.  
  6.    function valSep(oTxt){
  7.     var bOk = false;
  8.     var sep1 = oTxt.value.charAt(2);
  9.     var sep2 = oTxt.value.charAt(5);
  10.     bOk = bOk || ((sep1 == "-") && (sep2 == "-"));
  11.     bOk = bOk || ((sep1 == "/") && (sep2 == "/"));
  12.     return bOk;
  13.    }
  14.  
  15.    function finMes(oTxt){
  16.     var nMes = parseInt(oTxt.value.substr(3, 2), 10);
  17.     var nAno = parseInt(oTxt.value.substr(6), 10);
  18.     var nRes = 0;
  19.     switch (nMes){
  20.      case 1: nRes = 31; break;
  21.      case 2: nRes = 28; break;
  22.      case 3: nRes = 31; break;
  23.      case 4: nRes = 30; break;
  24.      case 5: nRes = 31; break;
  25.      case 6: nRes = 30; break;
  26.      case 7: nRes = 31; break;
  27.      case 8: nRes = 31; break;
  28.      case 9: nRes = 30; break;
  29.      case 10: nRes = 31; break;
  30.      case 11: nRes = 30; break;
  31.      case 12: nRes = 31; break;
  32.     }
  33.     return nRes + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
  34.    }
  35.  
  36.    function valDia(oTxt){
  37.     var bOk = false;
  38.     var nDia = parseInt(oTxt.value.substr(0, 2), 10);
  39.     bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
  40.     return bOk;
  41.    }
  42.  
  43.    function valMes(oTxt){
  44.     var bOk = false;
  45.     var nMes = parseInt(oTxt.value.substr(3, 2), 10);
  46.     bOk = bOk || ((nMes >= 1) && (nMes <= 12));
  47.     return bOk;
  48.    }
  49.  
  50.    function valAno(oTxt){
  51.     var bOk = true;
  52.     var nAno = oTxt.value.substr(6);
  53.     bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
  54.     if (bOk){
  55.      for (var i = 0; i < nAno.length; i++){
  56.       bOk = bOk && esDigito(nAno.charAt(i));
  57.      }
  58.     }
  59.     return bOk;
  60.    }
  61.  
  62.    function valFecha(oTxt){
  63.     var bOk = true;
  64.     if (oTxt.value != ""){
  65.      bOk = bOk && (valAno(oTxt));
  66.      bOk = bOk && (valMes(oTxt));
  67.      bOk = bOk && (valDia(oTxt));
  68.      bOk = bOk && (valSep(oTxt));
  69.      if (!bOk){
  70.       alert("La fecha ingresada es invalida");
  71.       oTxt.value = "";
  72.       return (false);
  73.      };
  74.     }
  75.    }


Código php:
Ver original
  1. <form name="enviar">
  2. <input type="text" name="fecha[]" size="15" maxlength="10" tabindex="[]" onblur="valFecha(document.enviar.fecha)" />
  3. </form>

este trate de ponerlo como : onblur="valFecha(document.enviar.fecha[])"
etc.. y no me funciona

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!