Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,O negócio é o seguinte. Tenho que adaptar algumas funções no meu trabalho para que funcione no firefox e estou com dificuldades para validar campos numéricos.Estou fazendo isso:<script language="javascript" type="text/javascript">var chrValidoDigito = '0123456789';function filtraInteiro(e) {if (!e) {e = window.event;} else {e = e; }var chrPressionado = getCharPressed(e);if(chrValidoDigito.indexOf(chrPressionado) < 0) {if (e.stopPropagation) {e.preventDefault(); //NAO FUNCIONA} else {e.returnValue = false;}}}function getCharPressed {var codeKey = (e.shiftKey || e.shiftLeft) ? (e.keyCode + 1000) : e.keyCode;switch (codeKey) {case 32 : { return ' '; break; }case 49 : { return '1'; break; }case 50 : { return '2'; break; }case 51 : { return '3'; break; }case 52 : { return '4'; break; }case 53 : { return '5'; break; }case 54 : { return '6'; break; }case 55 : { return '7'; break; }case 56 : { return '8'; break; }case 57 : { return '9'; break; }case 48 : { return '0'; break; }case 65 : { return 'a'; break; }case 66 : { return 'b'; break; }case 67 : { return 'c'; break; }case 68 : { return 'd'; break; }case 69 : { return 'e'; break; }case 70 : { return 'f'; break; }case 71 : { return 'g'; break; }case 72 : { return 'h'; break; }case 73 : { return 'i'; break; }case 74 : { return 'j'; break; }case 75 : { return 'k'; break; }case 76 : { return 'l'; break; }case 77 : { return 'm'; break; }case 78 : { return 'n'; break; }case 79 : { return 'o'; break; }case 80 : { return 'p'; break; }case 81 : { return 'q'; break; }case 82 : { return 'r'; break; }case 83 : { return 's'; break; }case 84 : { return 't'; break; }case 85 : { return 'u'; break; }case 86 : { return 'v'; break; }case 87 : { return 'w'; break; }case 88 : { return 'x'; break; }case 89 : { return 'y'; break; }case 90 : { return 'z'; break; }case 96 : { return '0'; break; }case 97 : { return '1'; break; }case 98 : { return '2'; break; }case 99 : { return '3'; break; }case 100 : { return '4'; break; }case 101 : { return '5'; break; }case 102 : { return '6'; break; }case 103 : { return '7'; break; }case 104 : { return '8'; break; }case 105 : { return '9'; break; }case 106 : { return '*'; break; }case 107 : { return '+'; break; }case 109 : { return '-'; break; }case 110 : { return ','; break; }case 111 : { return '/'; break; }case 194 : { return '.'; break; }case 186 : { return String.fromCharCode(231); break; } // 'ç'case 187 : { return '='; break; }case 188 : { return ','; break; }case 189 : { return '-'; break; }case 190 : { return '.'; break; }case 191 : { return ';'; break; }case 192 : { return '\''; break; }case 193 : { return '/'; break; }case 219 : { return '´'; break; }case 220 : { return ']'; break; }case 221 : { return '['; break; }case 222 : { return '~'; break; }case 226 : { return '\\'; break; }case 1049 : { return '!'; break; }case 1050 : { return '@'; break; }case 1051 : { return '#'; break; }case 1052 : { return '$'; break; }case 1053 : { return '%'; break; }case 1054 : { return '¨'; break; }case 1055 : { return '&'; break; }case 1056 : { return '*'; break; }case 1057 : { return '('; break; }case 1048 : { return ')'; break; }case 1065 : { return 'A'; break; }case 1066 : { return 'B'; break; }case 1067 : { return 'C'; break; }case 1068 : { return 'D'; break; }case 1069 : { return 'E'; break; }case 1070 : { return 'F'; break; }case 1071 : { return 'G'; break; }case 1072 : { return 'H'; break; }case 1073 : { return 'I'; break; }case 1074 : { return 'J'; break; }case 1075 : { return 'K'; break; }case 1076 : { return 'L'; break; }case 1077 : { return 'M'; break; }case 1078 : { return 'N'; break; }case 1079 : { return 'O'; break; }case 1080 : { return 'P'; break; }case 1081 : { return 'Q'; break; }case 1082 : { return 'R'; break; }case 1083 : { return 'S'; break; }case 1084 : { return 'T'; break; }case 1085 : { return 'U'; break; }case 1086 : { return 'V'; break; }case 1087 : { return 'W'; break; }case 1088 : { return 'X'; break; }case 1089 : { return 'Y'; break; }case 1090 : { return 'Z'; break; }case 1186 : { return String.fromCharCode(199); break; } // 'Ç'case 1187 : { return '+'; break; }case 1188 : { return '<'; break; }case 1189 : { return '_'; break; }case 1190 : { return '>'; break; }case 1191 : { return ':'; break; }case 1192 : { return '"'; break; }case 1193 : { return '?'; break; }case 1219 : { return '`'; break; }case 1220 : { return '}'; break; }case 1221 : { return '{'; break; }case 1222 : { return '^'; break; }case 1226 : { return '|'; break; }default : { return ''; break; }}}</script><input name="dhstrh" onKeyDown="filtraInteiro(event);"/>Está comentado ali o que eu acho que está dando erro.Vocês tem alguma idéia de como posso arrumar, ou outra forma de fazer isso?Me desculpe, me espressei mal.
Eu estou quase chegando onde preciso, só que ele está aceitando os acentos (´~). Em vermelho o que eu alterei:
<script language="javascript" type="text/javascript">
var chrValidoDigito = '0123456789';
function filtraInteiro(e) {
if (!e) {
e = window.event;
} else {
e = e;
}
var chrPressionado = getCharPressed(e);
if(chrValidoDigito.indexOf(chrPressionado) < 0 || chrValidoDigito.indexOf(chrPressionado) == "") {
if (e.stopPropagation) {
return false;
} else {
e.returnValue = false;
}
}
}
function getCharPressed (e) {
var codeKey = (e.shiftKey || e.shiftLeft) ? (e.keyCode + 1000) : e.keyCode;
switch (codeKey) {
case 32 : { return ' '; break; }
case 49 : { return '1'; break; }
case 50 : { return '2'; break; }
case 51 : { return '3'; break; }
case 52 : { return '4'; break; }
case 53 : { return '5'; break; }
case 54 : { return '6'; break; }
case 55 : { return '7'; break; }
case 56 : { return '8'; break; }
case 57 : { return '9'; break; }
case 48 : { return '0'; break; }
case 65 : { return 'a'; break; }
case 66 : { return 'b'; break; }
case 67 : { return 'c'; break; }
case 68 : { return 'd'; break; }
case 69 : { return 'e'; break; }
case 70 : { return 'f'; break; }
case 71 : { return 'g'; break; }
case 72 : { return 'h'; break; }
case 73 : { return 'i'; break; }
case 74 : { return 'j'; break; }
case 75 : { return 'k'; break; }
case 76 : { return 'l'; break; }
case 77 : { return 'm'; break; }
case 78 : { return 'n'; break; }
case 79 : { return 'o'; break; }
case 80 : { return 'p'; break; }
case 81 : { return 'q'; break; }
case 82 : { return 'r'; break; }
case 83 : { return 's'; break; }
case 84 : { return 't'; break; }
case 85 : { return 'u'; break; }
case 86 : { return 'v'; break; }
case 87 : { return 'w'; break; }
case 88 : { return 'x'; break; }
case 89 : { return 'y'; break; }
case 90 : { return 'z'; break; }
case 96 : { return '0'; break; }
case 97 : { return '1'; break; }
case 98 : { return '2'; break; }
case 99 : { return '3'; break; }
case 100 : { return '4'; break; }
case 101 : { return '5'; break; }
case 102 : { return '6'; break; }
case 103 : { return '7'; break; }
case 104 : { return '8'; break; }
case 105 : { return '9'; break; }
case 106 : { return '*'; break; }
case 107 : { return '+'; break; }
case 109 : { return '-'; break; }
case 110 : { return ','; break; }
case 111 : { return '/'; break; }
case 194 : { return '.'; break; }
case 186 : { return String.fromCharCode(231); break; } // 'ç'
case 187 : { return '='; break; }
case 188 : { return ','; break; }
case 189 : { return '-'; break; }
case 190 : { return '.'; break; }
case 191 : { return ';'; break; }
case 192 : { return '\''; break; }
case 193 : { return '/'; break; }
case 219 : { return '´'; break; }
case 220 : { return ']'; break; }
case 221 : { return '['; break; }
case 222 : { return '~'; break; }
case 226 : { return '\\'; break; }
case 1049 : { return '!'; break; }
case 1050 : { return '@'; break; }
case 1051 : { return '#'; break; }
case 1052 : { return '$'; break; }
case 1053 : { return '%'; break; }
case 1054 : { return '¨'; break; }
case 1055 : { return '&'; break; }
case 1056 : { return '*'; break; }
case 1057 : { return '('; break; }
case 1048 : { return ')'; break; }
case 1065 : { return 'A'; break; }
case 1066 : { return 'B'; break; }
case 1067 : { return 'C'; break; }
case 1068 : { return 'D'; break; }
case 1069 : { return 'E'; break; }
case 1070 : { return 'F'; break; }
case 1071 : { return 'G'; break; }
case 1072 : { return 'H'; break; }
case 1073 : { return 'I'; break; }
case 1074 : { return 'J'; break; }
case 1075 : { return 'K'; break; }
case 1076 : { return 'L'; break; }
case 1077 : { return 'M'; break; }
case 1078 : { return 'N'; break; }
case 1079 : { return 'O'; break; }
case 1080 : { return 'P'; break; }
case 1081 : { return 'Q'; break; }
case 1082 : { return 'R'; break; }
case 1083 : { return 'S'; break; }
case 1084 : { return 'T'; break; }
case 1085 : { return 'U'; break; }
case 1086 : { return 'V'; break; }
case 1087 : { return 'W'; break; }
case 1088 : { return 'X'; break; }
case 1089 : { return 'Y'; break; }
case 1090 : { return 'Z'; break; }
case 1186 : { return String.fromCharCode(199); break; } // 'Ç'
case 1187 : { return '+'; break; }
case 1188 : { return '<'; break; }
case 1189 : { return '_'; break; }
case 1190 : { return '>'; break; }
case 1191 : { return ':'; break; }
case 1192 : { return '"'; break; }
case 1193 : { return '?'; break; }
case 1219 : { return '`'; break; }
case 1220 : { return '}'; break; }
case 1221 : { return '{'; break; }
case 1222 : { return '^'; break; }
case 1226 : { return '|'; break; }
default : { return ''; break; }
}
}
</script>
<input name="dhstrh" onKeyDown="return filtraInteiro(event);"/>
Na verdade não achei confusa, foi o padrão que eu utilizei, esta função "getCharPressed" é chamada por outras 30 funções diferentes. Utilizo para validar campos de data, cpf, literal, vários tipos. O que eu postei acima é só uma das outras 30 funções que a chamam. Por isso preciso fazer esta funcionar e não usar outra.