LucasConstantino Postado Abril 6, 2009 Denunciar Share Postado Abril 6, 2009 Como faço pra um textbox aceitar somente números e vírgulas? É possível fazer isso com JavaScript?Muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Abril 6, 2009 Denunciar Share Postado Abril 6, 2009 (editado) e aew LucasConstantino, tenta tipo assim:<script language="javascript" > function funcao( obj , e ) { var tecla = ( window.event ) ? e.keyCode : e.which; if ( tecla == 8 || tecla == 0 ) return true; if ( tecla != 44 && tecla < 48 || tecla > 57 ) return false; } </script> e chama assim: <input type="text" onkeypress="return nomeFuncao( this , event ) ;" /> Editado Abril 6, 2009 por Romerito Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LucasConstantino Postado Abril 6, 2009 Autor Denunciar Share Postado Abril 6, 2009 Haha, funcionou exatamente como eu havia pedido... porém, como eu sou burro; backspace também é botão! Isso quer dizer que não posso mais limpar o texto! hahaha...bom, também não poderia permitir adicionar mais de uma vírgula no textbox, ou seja, 'se' já tivesse uma vírgula, a segunda não poderia entrar... mas isso pode deixar que eu dou um jeito e logo logo posto aqui... se alguém achar a solução antes, sinta-se livre também pra responder! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LucasConstantino Postado Abril 6, 2009 Autor Denunciar Share Postado Abril 6, 2009 (editado) Então, já ta resolvido. Na verdade quanto ao backscape não precisei fazer nada, o código do Romerito funcionava mesmo (que teclas são 0 e 8? backscape e outra?).Quanto as vírgulas e pontos ajeitei assim:function keypressed( obj , e ) { var tecla = ( window.event ) ? e.keyCode : e.which; var texto = document.getElementById("numeros").value var indexvir = texto.indexOf(",") var indexpon = texto.indexOf(".") if ( tecla == 8 || tecla == 0 ) return true; if ( tecla != 44 && tecla != 46 && tecla < 48 || tecla > 57 ) return false; if (tecla == 44) { if (indexvir !== -1 || indexpon !== -1) {return false} } if (tecla == 46) { if (indexvir !== -1 || indexpon !== -1) {return false} } } Usei "document.getElementById("numeros").value" pra definar a variavel e depois "indexOf(",")" pra procurar vírgulas nessa variável e "indexOf(".")" pra procurar pontos na mesma. Quando não encontrar, o valor é setado como -1. Daí vem o if das teclas 44 e 46 (vírgula e ponto), que vêem se há presença ("!= 1") ou não de vírgulas e pontos. Sendo verdade, o valor não é retornado ao texto. Se for falso (não existirem pontos e vírgulas no texto), o valor é retornado. Dai então a function keypressed é chamada em "onkeypressed" pelo textbox: <input type="text" id="numeros" value="" onkeypress="return keypressed( this , event );"/>Esse código todo posto acima está RESOLVIDO e pode ser usado para textbox onde o usúario deverá inserir números, que podem ser decimais ou podem não ser. Assim, vírgula e ponto são iguais, explicando a preocupação acima.Obrigado Romerito! Editado Abril 6, 2009 por LucasConstantino Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Abril 6, 2009 Denunciar Share Postado Abril 6, 2009 po cara parabéns, você é um dos primeiros que vejo que corre atrás das paradas e não fica esperando alguém resolver pra tú.abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Abril 6, 2009 Denunciar Share Postado Abril 6, 2009 que teclas são 0 e 8? backscape e outra?A tecla 8 é o backspace e o 0 não serviria pra nada nesse código (é usada para marcar o fim de uma string)Se quiser deixar o enter habilitado pode verificar se o código da tecla é 13Você pode ver o código de outras teclas aqui: http://pt.wikipedia.org/wiki/AsciiParabéns por ter conseguido resolver a outra parte do código sozinho e ao Romerito que ajudou !Obs.:O tópico foi marcado como Resolvido Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LucasConstantino
Como faço pra um textbox aceitar somente números e vírgulas? É possível fazer isso com JavaScript?
Muito obrigado!
Link para o comentário
Compartilhar em outros sites
5 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.