[ GuTo ] Postado Janeiro 18, 2005 Denunciar Share Postado Janeiro 18, 2005 Salve!!!Quero fazer um código q filtre apenas números na hora q o cara tiver digitando, e tem de ser CROSSBROWSER.Aceitar apenas números.Fiz isso mas não tá dando certo:<!-- function numeros() { if (document.all) { nTecla = event.keyCode; } // Internet Explorer else if(document.layers && navigator.appName.indexOf("Mozilla") == -1) { nTecla = event.which; } //Netscape else { nTecla = event.which; }// Mozilla / FireFox / Opera if ((nTecla < 44) || (nTecla > 57)) { if ((nTecla < 96) || (nTecla > 106)) { //alert("Somente números são permitidos"); event.returnValue = false; } } } // Pra chamar, uso <input type="text" onKeypress="return numeros();"> // --> E depois fiz uma pra saber quais são os códigos das teclas, mas não sei ao certo como fazer: Tentei assim: <!-- if (document.all) { nTecla = event.keyCode; } // Internet Explorer else if(document.layers && navigator.appName.indexOf("Mozilla") == -1) { nTecla = event.which; } //Netscape else { nTecla = event.which; }// Mozilla / FireFox / Opera for(i=0;i<nTecla.lenght;i++) { document.write(nTecla[i] + '=' + i) } // -->Se alguém puder ajudar, agradeço!Até mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Janeiro 18, 2005 Denunciar Share Postado Janeiro 18, 2005 <!-- function numeros(event) { if (document.all) { nTecla = event.keyCode; } // Internet Explorer else if(document.layers && navigator.appName.indexOf("Mozilla") == -1) { nTecla = event.which; } //Netscape else { nTecla = event.which; }// Mozilla / FireFox / Opera if ((nTecla < 44) || (nTecla > 57)) { if ((nTecla < 96) || (nTecla > 106)) { return false; } } } <input type="text" onKeydown="return numeros(event);"> // -->Dei uma "ajeitada" no teu primeiro código. testa q não pude testar...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Janeiro 19, 2005 Autor Denunciar Share Postado Janeiro 19, 2005 Cara, não deu!Por favor, me ajuda mesmo!Não consigo arrumar esta b*sta!Em outro fórum ninguém ajuda...Em pensar q eu quando fui moderador ajudava todo mundo... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Janeiro 19, 2005 Denunciar Share Postado Janeiro 19, 2005 <html><head><script language="javascript"> function ajustar_numero(input) { if ((event.keyCode<44)||(event.keyCode>57)){ event.returnValue = false; } }</script><body><form name="form1" method="post" action=""><input name="valor" type="text" onkeypress="ajustar_numero()" /></form></body></html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Janeiro 19, 2005 Autor Denunciar Share Postado Janeiro 19, 2005 Ok fabyo!Mas funciona no IE!E pra funciona no FireFox/Mozilla/Opera/Netscape ?estou usando o event.which, está errado?Não funciona sem ser no IE...Tava olhando agora e dá na mesma eu fazer assim ó, mas continua não funfando nos outros, só no IEca.Veja:<script language="JavaScript" type="text/javascript"> <!-- function sonumeros() { if (document.all) { nTecla = event.keyCode; } // Internet Explorer else if(document.layers && navigator.appName.indexOf("Mozilla") == -1) { nTecla = event.which; } //Netscape else { nTecla = event.which; }// Mozilla / FireFox / Opera if ((nTecla < 48) || (nTecla > 57)) { event.returnValue = false } } /* Não precisa disso, sei lá, mas o browser interpreta como valores iguais eu acho... porque estes são do NumLock, aquele tecladinho só com numeros no canto direito do teclado... if ((nTecla < 96) || (nTecla > 105)) { event.returnValue = false }*/ // --> </script> <input type="text" onKeypress="return sonumeros();"> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Illidan Postado Janeiro 19, 2005 Denunciar Share Postado Janeiro 19, 2005 E aí, Guto!Eu utilizo esta função pra resolver isso... funciona no IE, Opera, Mozilla...Abraços!<script type="text/javascript"> /* * function numbers ( event ) * * Carlos Reche * Jan, 2005 */ function numbers(evt) { var key_code = evt.keyCode ? evt.keyCode : evt.charCode ? evt.charCode : evt.which ? evt.which : void 0; // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE> if (key_code == 8 || key_code == 9 || key_code == 13 || key_code == 27 || key_code == 46) { return true; } // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda) else if ((key_code >= 35) && (key_code <= 40)) { return true } // Habilita números de 0 a 9 else if ((key_code >= 48) && (key_code <= 57)) { return true } return false; }</script>Exemplo de como utilizar:<input type="text" onkeypress="javascript: return numbers(event);" /> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Janeiro 19, 2005 Autor Denunciar Share Postado Janeiro 19, 2005 Aí brother!Exclente! Aceita estes caracteres ak tbmi: '#$%&(.Mas dae é só fazer uma condição pra bloquear cada um, sem problemas.Agora umas dúvidas:- O event.which funciona em quais browsers?- O event.charCode funciona em quais browsers?- Não precisamos usar o event.returnValue = true ou false? (Pelo q vi não). Mas sem ele é certo ou digamos não semântico para o JS?- Ah, o void eu sei q é uma palavra reservada, mas ali, o q ele fará ou "dirá" a condição? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Janeiro 19, 2005 Denunciar Share Postado Janeiro 19, 2005 fala brother, cara as propriedades charCode e o which do exemplo do Illidan são para manter compatibilidade com navegadores mais antigos, pois o keyCode é suportado pelos principais browsers em suas versões mais recentes. O void 0 seria para o caso de o browser não suportar nenhuma das três propriedades para capturar a tecla, então significa q ele vai atribuir 0 a variavel key_code.Outra coisa, os eventos que ocorrem são de suma importância para que as functions funcionem em diferentes browsers. Se tu fizer um teste com o código q o fabyo passou e trocar a chamada do evento de onkeypress para onkeydown você vai conseguir fazer funcionar no mozilla.Qualquer coisa posta ae...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Janeiro 19, 2005 Autor Denunciar Share Postado Janeiro 19, 2005 Pelo que eu saiba, o keyCode é só pra IE.O which não tenho certeza, mas dizem q é do Mozilla / FireFox / Opera.O charCode eu não sei!Poderiam me esclarecer isso?E sem querer ser chato, mas o do fabyo eu acho q tá errado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Janeiro 19, 2005 Denunciar Share Postado Janeiro 19, 2005 o keyCode funciona no mozilla(não o firefox) e tb Netscape, mas precisa ser chamado do onkeydown ou onkeyup, pois no onkeypress o keyCode para esses navegadores é zero.AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Janeiro 19, 2005 Autor Denunciar Share Postado Janeiro 19, 2005 beleza pura!!Então, o which é só pro FireFox?Ah e o charCode?E uma coisa:onkeyup e onkeydown tem o mesmo efeito de onkeypress não? Tipo, quando eu estou digitando num campo...Até mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Janeiro 26, 2005 Denunciar Share Postado Janeiro 26, 2005 Os eventos 1° - onkeydown, 2° - onkeypress, 3° - onkeyup, ocorrem nessa ordem. Seria quando a tecla desce(onkeydown) quando ela está pressionada(onkeypress) e quando ela foi solta e está indo de volta a sua posição(onkeyup). O charCode é para se pegar o valor quando a tecla está pressioanda (onkeypress), e funciona somente no NN(Padrão Netscape). O keyCode é para pegar o valor quando a tecla está sendo apertada(onkeydown) ou é solta(onkeyup). O which funciona apenas no NN4(teoricamente).Qualquer coisa posta ae...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Fevereiro 12, 2005 Autor Denunciar Share Postado Fevereiro 12, 2005 Na função que o Illidan fez ali, nossa quase perfeita, rsss!Eu até verifiquei todas as teclas, e só escapam estas (com seus respectivos códigos correspondentes)# $ % & ( .35 36 37 38 40 46Só que tem outras teclas com mesmo código, um exemplo é o DEL e o Ponto(.).Dae será que tem como pegar apenas o valor que está sendo digitado na hora e fazer a verificação se não é nenhum destes 6 caracteres ae?Desculpe pela chatice, mas é q tenho mania de perfeição Até mais,Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Fevereiro 13, 2005 Autor Denunciar Share Postado Fevereiro 13, 2005 up! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Fevereiro 14, 2005 Autor Denunciar Share Postado Fevereiro 14, 2005 up! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Fevereiro 14, 2005 Denunciar Share Postado Fevereiro 14, 2005 porque você não faz a verificação uma a uma já q são apenas seis? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Fevereiro 14, 2005 Autor Denunciar Share Postado Fevereiro 14, 2005 Só que tem outras teclas com mesmo código, um exemplo é o DEL e o Ponto(.).Dae será que tem como pegar apenas o valor que está sendo digitado na hora e fazer a verificação se não é nenhum destes 6 caracteres ae? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
[ GuTo ]
Salve!!!
Quero fazer um código q filtre apenas números na hora q o cara tiver digitando, e tem de ser CROSSBROWSER.
Aceitar apenas números.
Fiz isso mas não tá dando certo:
E depois fiz uma pra saber quais são os códigos das teclas, mas não sei ao certo como fazer: Tentei assim:Se alguém puder ajudar, agradeço!
Até mais!
Link para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.