Firefox + javascript

Olá.

Esse trecho que valida se os dados digitados são números. Ele funciona corretamente no IE:

onkeypress="if (event.keyCode < 48 || event.keyCode > 57) {event.returnValue = false;}"

E no firefox não funciona de jeito nenhum. Alguém sabe como colocar para funcionar nso dois browsers ?

Nunca tive problemas com meus JS no Firefox…

Esse codigo que vc postou não conheço, mas tem certeza que os < e > estão corretos???

Não é ao contrario não??? Maior que 48 e menor que 57???

Abraço…

Olá JavaPlayer,

A propriedade keyCode só existe pro IE. No Firefox você usa “which”. Tente assim:

onkeypress="return !(event.which < 48 || event.which > 57)"

Pra funcionar nos dois browsers, você tem que verificar as duas propriedades, preferencialmente numa função (pra num ficar uma linha enorme ali dentro do onkeypress). Por exemplo:

function validar(e) { var tecla; if (e.keyCode) { // IE tecla = e.keyCode; } else if (e.which) { // Firefox tecla = e.which; } else { // Sei lá! :P return false; } return !(tecla < 48 || tecla > 57); }

E no input:

onkeypress="return validar(event)"

Até mais,

Desse jeito que o CD1 falou, as outras teclas que não forem números, não vão “funcionar”. Se quiseres permitir o uso do Del, Backspace, etc, mantém parte daquele teu código inicial:

function validar(e) { var tecla; if (e.keyCode) // IE { tecla = e.keyCode; } else if (e.which) // Firefox { tecla = e.which; } else // Sei lá! :P { return false; } if (tecla < 48 || tecla > 57) { e.returnValue = false; } }

[]s

[quote=“CD1”]Olá JavaPlayer,

A propriedade keyCode só existe pro IE. No Firefox você usa “which”. Tente assim:

onkeypress="return !(event.which < 48 || event.which > 57)"

Pra funcionar nos dois browsers, você tem que verificar as duas propriedades, preferencialmente numa função (pra num ficar uma linha enorme ali dentro do onkeypress). Por exemplo:

function validar(e) { var tecla; if (e.keyCode) { // IE tecla = e.keyCode; } else if (e.which) { // Firefox tecla = e.which; } else { // Sei lá! :P return false; } return !(tecla < 48 || tecla > 57); }

E no input:

onkeypress="return validar(event)"

Até mais,[/quote]

Perfeito CD1…

Valeu mesmo!

[quote=“renatopb”][quote=“CD1”]

onkeypress="return !(event.which < 48 || event.which > 57)"

Pra funcionar nos dois browsers, você tem que verificar as duas propriedades, preferencialmente numa função (pra num ficar uma linha enorme ali dentro do onkeypress). Por exemplo:

function validar(e) { var tecla; if (e.keyCode) { // IE tecla = e.keyCode; } else if (e.which) { // Firefox tecla = e.which; } else { // Sei lá! :P return false; } return !(tecla < 48 || tecla > 57); }
[/quote]

Desse jeito que o CD1 falou, as outras teclas que não forem números, não vão “funcionar”. Se quiseres permitir o uso do Del, Backspace, etc, mantém parte daquele teu código inicial:

function validar(e) { var tecla; if (e.keyCode) // IE { tecla = e.keyCode; } else if (e.which) // Firefox { tecla = e.which; } else // Sei lá! :P { return false; } if (tecla < 48 || tecla > 57) { e.returnValue = false; } }

[]s[/quote]

É isso aí renatopb, no meu caso eu preciso apenas de números no campo. Mas a dica é válida.

Valeu!

Ô!

Só pra comentar, se for do jeito do CD1, se o cara escrever o número errado, ele não consegue apagar, a não ser que ele use o mouse pra selecionar o número e digite outro por cima :razz:

[]s