Quando uma tecla é pressionada, a função pega o codigo asc dela e verifica se está na faixa de 0 a 255 (Padrão Ascii). Se o codigo não tiver na faixa definida, o carctere não pode ser digitado e em seu lugar eu tenho que colocar outro carctere. No caso, estou colocando o 191.
O problema é que isso funciona o IE mas no Firefox não ta funcionado. Alguem sabe como resolver esse problema???
O problema é o seguinte, essa função é usada no onKeypress de um campo de texto. Eu não posso dar um campo.value = String.fromCharCode(keycode); porque isso iria substituir todo o testo que ja existe no campo. Na verdade eu preciso substituir o ultimo caractere digitado.
ai você vai criar um novo problema porque dessa forma você só concatena o valor no final, se o usuário usar as teclas de navegação ou clicar em outra posição o valor digitado sempre ficará no final. Ai é outra lógica.
R
rick512
É, realmente dessa forma funciona. Mas tambem não posso concatenar no final. Esse campo é de texto livre onde o usuário informa o texto para ser gravado no banco. Mas não posso deixar o ususario informar valores que o banco não vai aceitar. Tipo, se digitar um caracter fora da faixa válida, ele substitui o carctere por outro que podera ser gravado no banco.
L
luciano2
Cara ao invês de substituir enquanto o usuário digita você pode no submit substituir todos os caracters invalidos por espaço em branco.