Me sucede algo muy extraño con esta pequeña pieza de código que utilizo para validar los caracteres válidos de un campo. No es más que revisar que los campos numéricos sean solo números y los alfa solo alfa y así sucesivamente.
Código:
Para utilizarlo hay que colocar en los Input de tipo texto lo siguiente:function formatoCampo(fld,e,t) { // Variables var aux = aux2 = ''; var i = j = 0; var strCheck = null; // solo numeros if (t==1) var strCheck = '0123456789'; // solo letras if (t==2) var strCheck = 'AaBbCcDdEeFfGgHhIiJjKkLlÑñNnMmOoPpQqRrSsTtUuVvWwXxYyZzáÁéÉíÍóÓúÚ '; // telefonos if (t==3) var strCheck = '0123456789-ext'; // moneda & numerico con decimales if (t==4) var strCheck = '0123456789,.'; // Dimensiones (800x600) if (t==5) var strCheck = '0123456789x'; // Obtiene el codigo de la letra precionada var whichCode = (window.Event) ? e.which : e.keyCode; // Comienza la comprobación if (whichCode == 13 || whichCode == 8) return true; // Permitir Tecla Enter if (t==4 && (whichCode == 44 || whichCode == 46)) return true; // Permitir Comas y puntos if (whichCode == 0) return true; // Permitir Tabulador // Consigue el valor del codigo de tecla key = String.fromCharCode(whichCode); // Verifica el caracter con los seleccionados en strCheck if (strCheck.indexOf(key) == -1) return false; // Retorna el caracter al campo fld.value += aux2.charAt(i); }
Código:
Eso por ejemplo validaría para que los campos sean de solo números. <input type="text" onKeyPress="return(formatoCampo(this,event,1))">
Este código funciona perfectamente en todos los navegadores excepto IE8, y realmente no tengo idea de porque.
Gracias de antemano por cualquier ayuda que puedan prestarme.