Ir para conteúdo
Fórum Script Brasil
  • 0

Trabalhar Com Decimal("." Ou ",")


RodBAdbOY

Pergunta

Olá pessoal, será que vocês poderiam dar uma ajudinha a um novo integrante do grupo? biggrin.gif

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. sad.gif

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. rolleyes.gif

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

function teste(evt) {

var obj;

if (navigator.appName == 'Netscape') obj = evt.target;

else obj = evt.srcElement

if (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ço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

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. wink.gif

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. rolleyes.gif

Link para o comentário
Compartilhar em outros sites

  • 0

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 palavra

Quanto ao método indexOf() procure aqui no fórum q já expliquei como ele funciona...

Testa e qualquer dúvida posta ae...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...