Como posso restringir a entrada a uma caixa de texto de forma que aceite apenas números e o ponto decimal?
javascript
html
TinTin
fonte
fonte
isNaN(this.textbox.value)
??Respostas:
Isso realmente funciona!
fonte
&& charCode != 190 && charCode != 110 && (charCode > 105 || charCode < 96)
É isso que você está procurando?
Espero que ajude.
EDITAR: Eu editei meu exemplo acima para que possa haver apenas um ponto, precedido por pelo menos um dígito e seguido por pelo menos um dígito.
fonte
A solução aceita não é completa, pois você pode inserir vários '.', Por exemplo 24 .... 22..22. com algumas pequenas modificações, funcionará como pretendido:
fonte
ondrop="return false;" onpaste="return false;" oncontextmenu="return false;"
parece ser suficienteAqui está mais uma solução que permite números decimais e também limita os dígitos após decimais a 2 casas decimais.
fonte
if
está faltando um "C" maiúsculo..
), traço (-
) e a letrae
quando o texto é colado ou solto no campo. O elemento HTML também mostrará duas setas para aumentar e diminuir o número por padrão no Chrome. O botão decrescente permite que o número caia abaixo de zero.Todas as soluções apresentadas aqui estão usando eventos de chave única. Isso é muito sujeito a erros, pois a entrada também pode ser fornecida usando copiar e colar ou arrastar e soltar. Além disso, algumas das soluções restringem o uso de chaves sem caracteres
ctrl+c
, comoPos1
etc.Eu sugiro que em vez de verificar cada tecla pressionada, você verifique se o resultado é válido de acordo com suas expectativas.
o
oninput
evento é disparado logo após algo ser alterado na área de texto e antes de ser renderizado.Você pode estender o RegEx para qualquer formato de número que deseja aceitar. Isso é muito mais sustentável e extensível do que verificar se há pressionamentos de uma única tecla.
fonte
Você está procurando algo parecido com isto?
fonte
Basta aplicar este método em Jquery e você pode validar sua caixa de texto para aceitar apenas números com um decimal.
Por favor, veja a demonstração de trabalho aqui
fonte
Para qualquer um que esteja tropeçando aqui como eu, aqui está uma versão do jQuery 1.10.2 que escrevi que está funcionando muito bem para mim, embora consuma muitos recursos:
fonte
Uma pequena correção para a resposta brilhante de @risco para validar o decimal perfeitamente.
fonte
Se você quiser para valores flutuantes,
Aqui está a função que estou usando
fonte
fonte
fonte
aqui está o roteiro que vai te ajudar:
fonte
Suponha que o nome do seu campo de caixa de texto seja
Income
Chame este método de validação quando você precisar validar seu campo:
fonte
Ampliando a resposta do @risco. o código abaixo permitirá apenas números e um único '.' (ponto) na caixa de texto.
fonte
Melhor solução
fonte
A partir da resposta @rebisco:
Permite apenas este formato: 123123123 [.121213]
Demo aqui demo
fonte
Espero que funcione para você.
fonte
O código a seguir funcionou para mim
A caixa de entrada com o evento "onkeypress" como segue
A função "isNumberKey" é a seguinte
fonte
Observei que, para todas as respostas fornecidas aqui, as coisas não estão funcionando se selecionarmos alguma parte do texto na caixa de texto e tentarmos sobrescrever essa parte. Então eu modifiquei a função que é a seguinte:
fonte
Para números decimais e também permitindo números negativos com 2 casas decimais após o ponto ... Modifiquei a função para:
fonte
Uma forma alternativa de restringir a entrada a uma caixa de texto de modo que aceite apenas números e o ponto decimal é usar javascript dentro da entrada html. Isso funciona para mim:
--Aceita--
9
9,99
--Nao aceito--
9,99,99
abc
fonte
Isso permitirá apenas números e permitirá que você coloque "." para decimal.
fonte
Isso funciona bem.
fonte
A melhor solução de trabalho com demonstração ao vivo de amostra Pure-Javascript: https://jsfiddle.net/manoj2010/ygkpa89o/
fonte
Estou trabalhando no problema sozinho, e é isso que tenho até agora. Isso funciona mais ou menos, mas é impossível adicionar menos depois devido à nova verificação de valor. Também não permite vírgula como separador de milhar, apenas decimal.
Não é perfeito, mas pode dar algumas idéias.
Permite:
11 11 .245 (no controlador formatado em desfoque para 1111.245)
11,44
-123,123
-1 014
0123 (formatado em desfoque para 123)
não permite:
! @ # $ / *
abc
11.11.1
11,11,1
0,42
fonte
fonte
Eu sei que esta questão é muito antiga, mas ainda assim recebemos frequentemente tais requisitos. Existem muitos exemplos, porém muitos parecem ser muito prolixos ou complexos para uma implementação simples.
Veja este https://jsfiddle.net/vibs2006/rn0fvxuk/ e melhore-o (se puder). Funciona no IE, Firefox, Chrome e navegador Edge.
Aqui está o código de trabalho.
fonte
Escolhi abordar isso no
oninput
evento a fim de lidar com o problema de colagem do teclado, colagem do mouse e pressionamentos de tecla. Passe verdadeiro ou falso para indicar validação decimal ou inteira.São basicamente três etapas em três revestimentos. Se você não quiser truncar os decimais, comente a terceira etapa. Os ajustes de arredondamento também podem ser feitos na terceira etapa.
fonte
Você pode restringir os valores a serem inseridos pelo usuário, especificando o intervalo de valores ASCII.
Exemplo : 48 a 57 para valores numéricos (0 a 9)
fonte