Ahora me encuentro con un problema tal vez muy sencillo pero no lo suficiente para mi , estoy validando un input en el cual se ingrese la fecha ya tengo mi script pero es para formato dd/mm/aaaa, pero me encuentro trabajando con mysql y el formato es aaaa/mm/dd, me pueden ayudar a modificar mi script o que es lo que puedo hacer???, porque encontre un ejemplo aqui en en el foro pero de hace ya casi 4 años lo probe y no me funcino.
Este es mi script
Código:
<script language="JavaScript"> function esDigito(sChr){ var sCod = sChr.charCodeAt(0); return ((sCod > 47) && (sCod < 58)); } function valSep(oTxt){ var bOk = false; bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-")); 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 nRes = 0; switch (nMes){ case 1: nRes = 31; break; case 2: nRes = 29; 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; } 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 && (valSep(oTxt)); bOk = bOk && (valDia(oTxt)); bOk = bOk && (valMes(oTxt)); bOk = bOk && (valAno(oTxt)); if (!bOk){ alert("Fecha inválida"); oTxt.value = ""; oTxt.focus(); } } } </script>
Gracias