Hola foreros. Actualamente estoy utilizando esta funcion para validar los datos ingresados en un campo de texto con formato dd/mm/aaaa. De esta manera, solo se ingresan fechas. Se valida a medida que se completa por el evento onkeypress. Lo que no pude lograr es, que si hay un valor erroneo, ademas de mostrar el cartel de alerta,
que borre los datos del campo, y por otro lado, cuando ingrese 8 caracteres( o sea la fecha completa y bien escrita) valide si la fecha es menor o igual a hoy. De ser mayor a hoy, no quiero que derive. Disculpen que los moleste con esto, pero mi fuerte es asp, y no estoy muy afinado con js.
aca va la funcion
Código HTML:
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true; // Enter
key = String.fromCharCode(whichCode); // Get key value from key code
if (strCheck.indexOf(key) == -1) return false; // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = aux;
if (len == 2){
if (aux>31)
[COLOR="red"]window.alert("El dia debe ser inferior a 31"); [/COLOR] //despues de este mensaje me gustaria que borre los datos del campo
else
fld.value = aux;
}
if (len > 2 && len < 5) {
if (len == 4){
if (aux.substr(len - 2, len)>12)
[COLOR="Red"]window.alert("El mes debe ser inferior a 12"); [/COLOR] //despues de este mensaje me gustaria que borre los datos del campo
else
fld.value = aux;
}
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 2) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
if (len > 4 && len < 9) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 2 && i <= len -5) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += aux.substr(len - 2, len);
}
[COLOR="red"] if (len ==8){
var pagina="abm_cheque.asp?fechaok="+fld.value;
document.location=pagina;
}[/COLOR]// en ese if redirecciono con el valor de la fecha ok. Quisiera validar si la fecha es mayor a hoy, de ser asi, alerta y no se ejecuta la redireccion
return false;
}
muchas gracias de antemano por su ayuda