Estou criando uma página da web em que tenho um campo de texto de entrada no qual desejo permitir apenas caracteres numéricos como (0,1,2,3,4,5 ... 9) 0-9.
Como posso fazer isso usando o jQuery?
jquery
html
validation
numeric
Prashant
fonte
fonte
Respostas:
Nota: Esta é uma resposta atualizada. Os comentários abaixo se referem a uma versão antiga que mexia com códigos de chave.
jQuery
Tente você mesmo no JSFiddle .
Não existe uma implementação nativa do jQuery para isso, mas você pode filtrar os valores de entrada de um texto
<input>
com o seguinteinputFilter
plug-in (suporta Copiar + Colar, Arrastar + Soltar, atalhos de teclado, operações do menu de contexto, teclas não tipificáveis, posição do cursor, diferentes layouts de teclado e todos os navegadores desde o IE 9 ):Agora você pode usar o
inputFilter
plug-in para instalar um filtro de entrada:Veja a demonstração do JSFiddle para obter mais exemplos de filtros de entrada. Observe também que você ainda deve fazer a validação no servidor!
JavaScript puro (sem jQuery)
O jQuery não é realmente necessário para isso. Você também pode fazer o mesmo com JavaScript puro. Veja esta resposta .
HTML 5
O HTML 5 possui uma solução nativa com
<input type="number">
(consulte a especificação ), mas observe que o suporte ao navegador varia:step
,min
emax
atributos.e
eE
entrar no campo. Veja também esta pergunta .Experimente você mesmo em w3schools.com .
fonte
Aqui está a função que eu uso:
Você pode anexá-lo ao seu controle fazendo o seguinte:
fonte
return this.each(function()
?each
partir dereturn this.each(function()
é permitir que múltiplos objectos como referido HaggleLad, e areturn
parte é para devolver o objecto novamente jQuery para o chamador, para permitir o encadeamento, tais como$("input[type='text'").ForceNumericOnly().show()
Na linha:
Estilo discreto (com jQuery):
fonte
onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')"
./[^0-9]|^0+(?!$)/g
impedir séries iniciais de zero.Você pode usar apenas uma expressão regular JavaScript simples para testar caracteres puramente numéricos:
Isso retorna verdadeiro se a entrada for numérica ou falsa, se não.
ou para código-chave do evento, use simples abaixo:
fonte
Você pode usar no evento de entrada como este:
Mas, qual é esse privilégio de código?
fonte
decimal
entre0.0
para24.0
eu sou incapaz de deixá-lo entrar no.
this.value = Number(this.value.replace(/\D/g, ''));
Curto e doce - mesmo que isso nunca encontre muita atenção após mais de 30 respostas;)
fonte
Usar a função JavaScript isNaN ,
if (isNaN (document.getElementById ('inputid'). val ())))Atualização: E aqui um bom artigo falando sobre isso, mas usando jQuery: Restringindo entrada em caixas de texto HTML para valores numéricos
fonte
document.getElementById('inputid').val()
cara .. isso ainda é jquery..val()
é uma coisa jquery. use.value
isNaN
sozinho é uma má ideia devido à coerção do tipo JavaScript.decimal
entre0.0
para24.0
eu sou incapaz de deixá-lo entrar no.
Fonte: http://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values
fonte
Eu uso isso em nosso arquivo js comum interno. Acabei de adicionar a classe a qualquer entrada que precise desse comportamento.
fonte
Um mais simples para mim é
fonte
this.value.replace(/[^0-9\.]/g,'');
para incluir requisitos de 0-9 OPPor que tão complicado? Você nem precisa do jQuery porque existe um atributo de padrão HTML5:
O legal é que ele traz um teclado numérico em dispositivos móveis, o que é muito melhor do que usar o jQuery.
fonte
Você pode fazer o mesmo usando esta solução muito simples
Eu me referi a este link para a solução. Funciona perfeitamente!!!
fonte
decimal
entre0.0
para24.0
eu sou incapaz de deixá-lo entrar no.
Você pode tentar a entrada do número HTML5 :
Para navegadores não compatíveis, existem fallbacks Modernizr e Webforms2 .
fonte
O atributo padrão no HTML5 especifica uma expressão regular com a qual o valor do elemento é verificado.
Nota: O atributo padrão funciona com os seguintes tipos de entrada: texto, pesquisa, url, tel, email e senha.
[0-9] pode ser substituído por qualquer condição de expressão regular.
{1,3} representa um mínimo de 1 e um máximo de 3 dígitos.
fonte
decimal
entre0.0
para24.0
eu sou incapaz de deixá-lo entrar no.
Algo bastante simples usando jQuery.validate
fonte
função suppressNonNumericInput (evento) {
fonte
decimal
entre0.0
para24.0
eu sou incapaz de deixá-lo entrar no.
Cheguei a uma solução muito boa e simples que não impede o usuário de selecionar texto ou copiar colar como outras soluções. estilo jQuery :)
fonte
Você pode usar esta função JavaScript:
E você pode vinculá-lo à sua caixa de texto assim:
Eu uso o acima na produção, e funciona perfeitamente, e é cross-browser. Além disso, ele não depende do jQuery, portanto, você pode vinculá-lo à sua caixa de texto com JavaScript embutido:
fonte
Eu acho que vai ajudar todo mundo
fonte
if(event.which!=8 && event.which!=0 && (event.which<48 || event.which>57) && (event.which<96 || event.which>105)) return;
Eu escrevi o meu com base na postagem de @ user261922 acima, ligeiramente modificado para que você possa selecionar a guia all e possa lidar com vários campos "somente número" na mesma página.
fonte
Aqui está uma solução rápida que eu criei há algum tempo. você pode ler mais sobre isso no meu artigo:
http://ajax911.com/numbers-numeric-field-jquery/
fonte
Você deseja permitir a guia:
fonte
Aqui está uma resposta que usa o jQuery UI Widget factory. Você pode personalizar quais caracteres são permitidos facilmente.
Isso permitiria números, sinais numéricos e valores em dólares.
fonte
Isso parece inquebrável.
fonte
É necessário verificar se o teclado numérico e a tecla tab estão funcionando também
fonte
Eu queria ajudar um pouco, e fiz minha versão, a
onlyNumbers
função ...Basta adicionar a tag de entrada "... input ... id =" price "onkeydown =" return onlyNumbers (event) "..." e pronto;)
fonte
Eu também gostaria de responder :)
É isso aí ... apenas números. :) Quase pode funcionar apenas com o 'blur', mas ...
fonte
A maneira simples de verificar se o valor inserido é numérico é:
fonte
Só é necessário aplicar esse método no Jquery e você pode validar sua caixa de texto para aceitar apenas o número.
Experimente esta solução aqui
fonte
Você pode tentar a entrada do número HTML5:
Esse elemento de tag de entrada agora assumirá valor apenas entre 0 e 9, já que o atributo min está definido como 0 e o atributo max está definido como 9.
para obter mais informações, visite http://www.w3schools.com/html/html_form_input_types.asp
fonte