Firefox + javascript

6 respostas
G

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 ?

6 Respostas

J

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…

C

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,

R

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

G

“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,

Perfeito CD1…

Valeu mesmo!

G

“renatopb”:
“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); }

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

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

Valeu!

R

Ô!

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

Criado 15 de agosto de 2006
Ultima resposta 16 de ago. de 2006
Respostas 6
Participantes 4