RodBAdbOY Postado Novembro 24, 2004 Denunciar Share Postado Novembro 24, 2004 Olá pessoal, será que vocês poderiam dar uma ajudinha a um novo integrante do grupo? O que eu gostaria é o seguinte: 1º - Que um campo do form, de tipo:text, não deixe validar a entrada de letras e caracteres para informar um número decimal;2º - Que não seja validada mais de uma ","(vírgula) ou "."(ponto), para este mesmo campo - mas tudo no evento onkeyup, não quero aguardar o submit.Bem, o primeiro eu consegui resolver assim://função para proibir entrada de caracteres indevidosfunction valida_decimal(caracter) {var digitos = '0123456789,.'var validofor (var x=0;x<caracter.length;x++) {valido=caracter.substring(x,x+1);if (digitos.indexOf(valido)==-1) {document.formulario1[o].value = caracter.replace(valido,'');return false }} //fim de for} //fim de funçãoCom isso eu consigo impedir a entrada de letras e de caracteres indevidos em tempo de digitação.Já o segundo, tentei-tentei-tentei, mas não consigo. Se alguém puder me ajudar ficarei muito grato.E continuarei a tentar também, e conseguindo, ou chegando perto, eu informarei.Grato e sucesso a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Novembro 24, 2004 Denunciar Share Postado Novembro 24, 2004 function teste(evt) {var obj;if (navigator.appName == 'Netscape') obj = evt.target;else obj = evt.srcElementif (evt.keyCode == 110 || evt.keyCode == 188 || evt.keyCode == 190) {var valor = obj.value;if (valor.indexOf(".") != -1 || valor.indexOf(",") != -1) return false;}}Nã testei a function porque estou corrido aqui...testa a depois me diz...abraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodBAdbOY Postado Novembro 26, 2004 Autor Denunciar Share Postado Novembro 26, 2004 Crystian,eu estava tentando também e achei uma outra solução que era: function valida_decimal(caracter) var controle if (event.keyCode<48 || event.keyCode>57) { for (x=0;x<caracter.length;x++) { controle = caracter.substring(x-1,x); //pegue o último caracter if (controle==',' || controle=='.') { return false; } else { if (event.keyCode!=188 || event.keyCode!=190) { return false; } } } }Com esse o vento já deve ser o onkeyDown e não o onkeyUp, mas ele ainda: aceita o primeiro caracter como letra e não aceita ',' ou '.' nenhum.O seu não funcionou, mas ajudou-me a pensar, o que acho(e foi) muito bom. Agora, será que estou pegando o último caracter de forma certa?E no indexOf() não deve ser declarado dentro dele um numero?Grato e sucesso a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Novembro 26, 2004 Denunciar Share Postado Novembro 26, 2004 Isso está errado... controle = caracter.substring(x-1,x); //pegue o último caracter pra você pegar o último caracter você precisa utilizar controle = caracter.substring(caracter.length-1,caracter.length); //pegue o último caracter mas eu acredito q o q você realmente queira é isso... controle = caracter.substring(x, x+1); //é utilizado por um laço e pega cada um dos caracteres da palavra ou pode fazer assim tb... controle = caracter.charAt(x); //é utilizado por um laço e pega cada um dos caracteres da palavraQuanto ao método indexOf() procure aqui no fórum q já expliquei como ele funciona...Testa e qualquer dúvida posta ae...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RodBAdbOY
Olá pessoal, será que vocês poderiam dar uma ajudinha a um novo integrante do grupo?
O que eu gostaria é o seguinte:
1º - Que um campo do form, de tipo:text, não deixe validar a entrada de letras e caracteres para informar um número decimal;
2º - Que não seja validada mais de uma ","(vírgula) ou "."(ponto), para este mesmo campo - mas tudo no evento onkeyup, não quero aguardar o submit.
Bem, o primeiro eu consegui resolver assim:
//função para proibir entrada de caracteres indevidos
function valida_decimal(caracter) {
var digitos = '0123456789,.'
var valido
for (var x=0;x<caracter.length;x++) {
valido=caracter.substring(x,x+1);
if (digitos.indexOf(valido)==-1) {
document.formulario1[o].value = caracter.replace(valido,'');
return false }
} //fim de for
} //fim de função
Com isso eu consigo impedir a entrada de letras e de caracteres indevidos em tempo de digitação.
Já o segundo, tentei-tentei-tentei, mas não consigo.
Se alguém puder me ajudar ficarei muito grato.
E continuarei a tentar também, e conseguindo, ou chegando perto, eu informarei.
Grato e sucesso a todos.
Link para o comentário
Compartilhar em outros sites
3 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.