/* Autor = Marcos Regis; Data = Fev 2005; Assunto = Controlar Teclas; Pode ser usado e alterado desde que mantidos estes comentários em respeite ao autor. Descrição = A função recebe um evento e um parâmetro que permite caracteres adicionais indicados no evento onKeyPress. function soNums(e,args) { // Função que permite apenas teclas numéricas e // todos os caracteres que estiverem na lista // de argumentos. // Deve ser chamada no evento onKeyPress desta forma // onKeyPress ="return (soNums(event,'(/){,}.'));" // caso queira apenas permitir caracters if (document.all){var evt=event.keyCode;} // caso seja IE else{var evt = e.charCode;} // do contrário deve ser Mozilla var chr= String.fromCharCode(evt); // pegando a tecla digitada // Se o código for menor que 20 é porque deve ser caracteres de controle // ex.: , , portanto devemos permitir // as teclas numéricas vão de 48 a 57 if (evt <20 || (evt >47 && evt<58) || (args.indexOf(chr)>-1 ) ){return true;} return false; } /* outra variação só que mais rígida. Não permite nenhum caracter que não esteja na lista de permissão. Aconselhável para algumas situações como por exemplo testes de digitação ou coisas do tipo. */ function soNums(e,args) { if (document.all){var evt=event.keyCode;} // caso seja IE else{var evt = e.charCode;} // do contrário deve ser Mozilla var valid_chars = '0123456789'+args; // criando a lista de teclas permitidas var chr= String.fromCharCode(evt); // pegando a tecla digitada if (valid_chars.indexOf(chr)>-1 ){return true;} // se a tecla estiver na lista de permissão permite-a // para permitir teclas como adicionamos uma permissão para // códigos de tecla menores que 09 por exemplo (geralmente uso menores que 20) if (valid_chars.indexOf(chr)>-1 || evt < 9){return true;} // se a tecla estiver na lista de permissão permite-a return false; // do contrário nega } Espero que seja útil.