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>