/************************************************************************/ /* AUTOR: Eduardo Alemany Vicens FECHA: 10/09/2003 Funciones para aplicar una máscara a un campo texto. ex: 'nn-nn' Tomando como exemplo la mascara de arriba. Cuando el usuário escriba 8888 en el campo, será aplicada a la máscara y el valor del campo será 88-88. El evento que llamará a la funcion sera "ONKEYPRESS". Valores fijos de mascara: Para referenciar números, caracter 'n' Para referenciar caracteres, caracter 'c'. Para referenciar Mayusculas, caracter 'M' Para referenciar minusculas, caracter 'm' Para referenciar guion, caracter '-' Para referenciar separador de fecha, caracter '/' Para referenciar separador de hora, caracter ':' Para referenciar punto decimal, caracter '.' Para referenciar coma, caracter ',' Para referenciar espacio, caracter ' ' */ function formateaCampo(codError,Campo,teclapres,mascara) { //alert('Campo: '+Campo+'\nTecla: '+teclapres+'\n mascara: '+mascara); //pegando el tamaño del texto de la caja de texto con delay de -1 no event //o sea el último caracter que fue tecleado no sera contado. strtext = Campo.value tamtext = strtext.length //pegando el tamaño de la mascara tammask = mascara.length //creando un array para guardar cada caracterer de la máscara arrmask = new Array(tammask) //copiando los caracteres para el vector for (var i = 0 ; i < tammask; i++){ arrmask[i] = mascara.slice(i,i+1) } //Para capturar los eventos en el netscape! var isNS4 = (navigator.appName=="Netscape")?1:0; //Si la tecla pulsada es el tabulador devuelve el control al navegador JMartínez. if(teclapres.keyCode==9) return; //Empezando el trabajo sucio if (arrmask[tamtext]=="n") { if (!isNS4) { if (teclapres.keyCode>=48 && teclapres.keyCode<=57 && (!event.altKey && !event.shiftKey)) { } else { if (teclapres.keyCode!=8 && teclapres.keyCode!=9 && teclapres.keyCode!=13) { Event_nulo(Campo,strtext) } } } else { //Es netscape if (teclapres.which>=48 && teclapres.which<=57 && (!event.altKey && !event.shiftKey)) { } else { if (teclapres.which!=8 && teclapres.which!=9 && teclapres.which!=13) { return Event_nulo(Campo,strtext); } } }//FIN else netscape }//FIN if numero if (arrmask[tamtext]=="c") { if (!isNS4) { if ((teclapres.keyCode>=97 && teclapres.keyCode<=122) || (teclapres.keyCode==241) || (teclapres.keyCode>=65 && teclapres.keyCode<=90) || (teclapres.keyCode==192) && (!event.altKey)) { } else { if (teclapres.keyCode!=8 && teclapres.keyCode!=9 && teclapres.keyCode!=13) { Event_nulo(Campo,strtext) } } } else { //Es netscape if (((teclapres.which>=97 && teclapres.which<=122) || (teclapres.which==241) || (teclapres.which>=65 && teclapres.which<=90) || (teclapres.which==192)) && (!event.altKey)) { } else { if (teclapres.which!=8 && teclapres.which!=9 && teclapres.which!=13) { return Event_nulo(Campo,strtext); } } }//FIN else netscape }//FIN if caracter if ((arrmask[tamtext]!="n") && (arrmask[tamtext]!="c")) { if (!isNS4) { if ((arrmask[tamtext + 1]=="n") && (teclapres.keyCode>=48 && teclapres.keyCode<=57)) { Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext) } else { if ((arrmask[tamtext + 1]=="c") && ((teclapres.keyCode>=97 && teclapres.keyCode<=122) || (teclapres.keyCode==241) || (teclapres.keyCode>=65 && teclapres.keyCode<=90) || (teclapres.keyCode==192)) && (!event.altKey)) { Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext) } else { if (teclapres.keyCode!=8 && teclapres.keyCode!=9 && teclapres.keyCode!=13) { Event_nulo(Campo,strtext) } } } } else { //Es netscape //alert ("masc +1: "+ arrmask[tamtext + 1]+" | Cod. tecla: "+teclapres.which); if ((arrmask[tamtext + 1]=="n") && (teclapres.which>=48 && teclapres.which<=57)) { Organiza_Casa(Campo,arrmask[tamtext],teclapres.which,strtext); } else { //alert ("masc +1: "+ arrmask[tamtext + 1]+" | Cod. tecla: "+teclapres.which+" | Mascara actual: "+arrmask[tamtext]); if ((arrmask[tamtext + 1]=="c") && ((teclapres.which>=97 && teclapres.which<=122) || (teclapres.which==241) || (teclapres.which>=65 && teclapres.which<=90) || (teclapres.which==192))) { Organiza_Casa(Campo,arrmask[tamtext],teclapres.which,strtext); } else { if (teclapres.which!=8 && teclapres.which!=9 && teclapres.which!=13) { return Event_nulo(Campo,strtext) } } } }//FIN else netscape }//FIN if caracter especial }//FIN funcion /**********************************************************************/ function Organiza_Casa(Campo,arrpos,teclapres_key,strtext){ if (((arrpos == "/") || (arrpos == ".") || (arrpos == ",") || (arrpos == ":") || (arrpos == " ") || (arrpos == "-")) && !(teclapres_key == 8)){ separador = arrpos; masktext = strtext + separador; Campo.value = masktext; } }//FIN funcion /**********************************************************************/ function Event_nulo(Campo,strtext){ //Para capturar los eventos en el netscape! var isNS4 = (navigator.appName=="Netscape")?1:0; if (!isNS4) { event.returnValue = false; if (strtext != "") { Campo.value = strtext } } else { return false; }//FIn si es no es netscape }//FIN funcion /**********************************************************************/ function mascara_unica(Campo,teclapres,mascara){ //pegando el tamaño del texto de la caja de texto con delay de -1 no event //o sea el último caracter que fue tecleado no sera contado. strtext = Campo.value; //Para capturar los eventos en el netscape! var isNS4 = (navigator.appName=="Netscape")?1:0; switch (mascara) { case 'n' : if (!isNS4) { if (((teclapres.keyCode>=48 && teclapres.keyCode<=57) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) && (!event.altKey && !event.shiftKey)) { } else { Event_nulo(Campo,strtext); } } else { if (((teclapres.which>=48 && teclapres.which<=57) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13 || teclapres.which==0)) && (!event.altKey && !event.shiftKey)) { } else { return Event_nulo(Campo,strtext); } }//FIN else netscape break; case 'c' : if (!isNS4) { if ((((teclapres.keyCode>=65 && teclapres.keyCode<=90)||(teclapres.keyCode==192)) || ((teclapres.keyCode>=97 && teclapres.keyCode<=122)||(teclapres.keyCode==241)) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) && (!event.altKey)) { } else { Event_nulo(Campo,strtext); } } else { if ((((teclapres.which>=65 && teclapres.which<=90)||(teclapres.which==192)) || ((teclapres.which>=97 && teclapres.which<=122)||(teclapres.which==241)) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) && (!event.altKey)) { } else { return Event_nulo(Campo,strtext); } }//FIN else netscape break; case 'M' : if (!isNS4) { if (((teclapres.keyCode>=65 && teclapres.keyCode<=90)||(teclapres.keyCode==192))||(teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) { } else { Event_nulo(Campo,strtext); } } else { if (((teclapres.which>=65 && teclapres.which<=90)||(teclapres.which==192)) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) { } else { return Event_nulo(Campo,strtext); } }//FIN else netscape break; case 'm' : if (!isNS4) { if ((((teclapres.keyCode>=97 && teclapres.keyCode<=122)||(teclapres.keyCode==241)) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) && (!event.altKey && !event.shiftKey)) { } else { Event_nulo(Campo,strtext); } } else { if (((teclapres.which>=97 && teclapres.which<=122)||(teclapres.which==241)) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) { } else { return Event_nulo(Campo,strtext); } }//FIN else netscape break; }//FIN switch }//FIN funcion /**********************************************************************/