Foros del Web » Programando para Internet » Javascript »

no puedo validar fechas

Estas en el tema de no puedo validar fechas en el foro de Javascript en Foros del Web. Tengo el siguiente Problema: en mi codigo debo validar que las fechas esten correctamente escritas en el formato dd-mm-aaaa, sin embargo al encontrar un numero ...
  #1 (permalink)  
Antiguo 27/02/2007, 14:20
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta no puedo validar fechas

Tengo el siguiente Problema: en mi codigo debo validar que las fechas esten correctamente escritas en el formato dd-mm-aaaa, sin embargo al encontrar un numero en la primera fecha se termina la ejecucion del script (ubike unos alert entremedio de la funcion para comprobar cuando se perdia) alguien sabe como puedo arreglarlo?
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ingreso de Sumario</title>
</head>

<body background="fondo_2.jpg">
 
<script type="text/javascript">
function validarnum(e) { 
    tecla = (document.all) ? e.keyCode : e.which; 
    if (tecla==8) return true; 
	patron =/[0-9]/; 
    te = String.fromCharCode(tecla); 
    return patron.test(te); 
} 
function zero(){
if (form1.fest.value==''){
  form1.fest.value='0';}}
function valSep(oTxt){ 
    var bOk = false; 
    bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-")); 
    return bOk; 
   } 

   function finMes(oTxt){ 
    var nMes = parseInt(oTxt.value.substr(3, 2), 10); 
    var nAno = parseInt(oTxt.value.substr(6), 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 valDia(oTxt){ 
    var bOk = false; 
    var nDia = parseInt(oTxt.value.substr(0, 2), 10); 
    bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt))); 
    return (bOk); 
   } 

   function valMes(oTxt){ 
    var bOk = false; 
    var nMes = parseInt(oTxt.value.substr(3, 2), 10); 
    bOk = bOk || ((nMes >= 1) && (nMes <= 12)); 
    return (bOk); 
   } 

   function valAno(oTxt){ 
    var bOk = true; 
    var nAno = oTxt.value.substr(6); 
    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 valFecha(oTxt){ 
    var bOk = true; 
    if (oTxt.value != ""){ 
     bOk = bOk && (valAno(oTxt)) && (valMes(oTxt)) && (valDia(oTxt))  && (valSep(oTxt)); 
     return (bOk); 
    } 
    else { return false;}
   } 
   function validarfechas(){
   var valida=false;
   valida=valFecha(document.form1.fres);
   if (valida==false){alert("Fecha de Resolucion Invalida");return false;}
   alert ("salio del if");
   valida=valFecha(document.form1.finicio);
   alert ("paso a validar la de inicio");
   if (valida==false){alert("Fecha de Inicio Invalida");return false;}
   return valida;   
   }
</script>

<table border="0"><form name="form1" action="form2.php"  onSubmit="return validarfechas()"method="post">
<tr><td>Numero de resolucion:</td><td><input type="text" name="nres" onkeypress="return validarnum(event)"></td></tr>
<tr><td>Fecha de resolucion:</td><td><input type="text" name="fres">(dd-mm-aaaa)</td></tr>
<tr><td>Procedimiento:</td><td><select  name="proc"><option value="I">Investigacion Sumario</option><option value="A">sumario administrativo</option></select></td></tr>
<tr><td>Ingrese Nombre Fiscal involucrado:</td><td><input type="text" name="nfisc"></td></tr>
<tr><td>Ingrese Nombre Funcionario Involucrado:</td><td><input type="text" name="ninv"></td></tr>
<tr><td>Hecho a Investigar:</td><td><input type="text" name="hecho"></td></tr>
<tr><td>Inicio del sumario:</td><td><input type="text" name="finicio">(dd-mm-aaaa)</td></tr>
<tr><td>Dias festivos durante el proceso:</td><td><input type="text" name="fest" onkeypress="return validarnum(event)" value="0" onkeyup="zero()"></td></tr>
<tr><td>(sin contar sabados y domingos)</td></tr>
<tr><td>Observaciones:</td><td><input type="text" name="obs"></td></tr>
<tr><td><input type="submit" value="Enviar"><td><input type="button" onClick="history.back(-1)" value="Cancelar"></td></tr></form></table>
</body>
</html>
  #2 (permalink)  
Antiguo 28/02/2007, 07:05
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: no puedo validar fechas

luego de revisar el codigo unas cuantas veces me di cuenta k me faltaba un modulo k es el siguiente:
Código:
function esDigito(sChr){ 
    var sCod = sChr.charCodeAt(0); 
    return ((sCod > 47) && (sCod < 58)); 
   }
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 06:46.