Como faço para bloquear caracteres especiais de serem digitados em um campo de entrada com jquery?
jquery
special-characters
alphanumeric
Nerd Stalker
fonte
fonte
Respostas:
Um exemplo simples usando uma expressão regular que você pode alterar para permitir / proibir o que quiser.
fonte
Eu estava procurando uma resposta que restringisse a entrada a apenas caracteres alfanuméricos, mas ainda permitisse o uso de caracteres de controle (por exemplo, backspace, deletar, tabulação) e copiar + colar. Nenhuma das respostas fornecidas que tentei atendeu a todos esses requisitos, então, sugeri o seguinte usando o
input
evento.Editar:
Como o rinogo apontou nos comentários, o trecho de código acima força o cursor para o final da entrada ao digitar no meio do texto de entrada. Acredito que o trecho de código abaixo resolve esse problema.
fonte
event.which
ouevent.keycode
! Gostaria de poder +10!Resposta curta: evitar o evento 'keypress':
Resposta longa: use um plugin como jquery.alphanum
Existem várias coisas a considerar ao escolher uma solução:
Acho que esta área é complexa o suficiente para justificar o uso de um plugin de terceiros. Tentei vários dos plug-ins disponíveis, mas encontrei alguns problemas com cada um deles, então fui em frente e escrevi jquery.alphanum . O código é parecido com este:
Ou para um controle mais refinado, adicione algumas configurações:
Espero que ajude.
fonte
allow
configuração. Mas essa é a beleza dos plug-ins jquery, o fato de que você pode modificá-los para atender às suas necessidades. Obrigado!allow
opção e funcionou bem para mim usando este código:$('#firstName').alphanum({allow: "/"});
Alguma chance de você fornecer mais informações? Se houver um bug ou problema com os documentos, seria bom consertá-lo. CheersallowOtherCharSets: false
eallowCaseless: false
. Isso interferiu nas configurações definidas emallow
. Do meu ponto de vista, acho que aallow
opção deve vetar todas as outras opções (comoallowOtherCharSets
ouallowCaseless
). Portanto, se você especificar um caractere naallow
opção, ele deve ser permitido independentemente das outras opções definidas no objeto de configuração. O mesmo vale paradisallow
. Mas esta é apenas a minha opinião. :) Saúde de novo! :)allow
edisallow
ter uma prioridade mais alta. Está registrado na edição # 7 . Espero que ajudeUse o atributo de entrada de padrão do HTML5!
fonte
Sua caixa de texto:
Seu javascript:
fonte
Use regex para permitir / proibir qualquer coisa. Além disso, para uma versão um pouco mais robusta do que a resposta aceita, permitir que os caracteres que não tenham um valor-chave associado a eles (backspace, tab, teclas de seta, excluir, etc.) podem ser feitos passando primeiro pelo evento de pressionamento de tecla e verifique a chave com base no código-chave em vez de no valor.
fonte
Dê uma olhada no plugin alfanumérico jQuery. https://github.com/KevinSheedy/jquery.alphanum
fonte
Escreva algum código javascript no evento onkeypress da caixa de texto. conforme o requisito, permita e restrinja o caractere em sua caixa de texto
fonte
Eu uso este código modificando outros que vi. Somente grand para o usuário escrever se a tecla pressionada ou o texto colado passar no teste de padrão (correspondência) (este exemplo é uma entrada de texto que permite apenas 8 dígitos)
fonte
!e.charCode ? e.which : e.charCode
e não simplesmentee.charCode ? e.charCode : e.which
?este é um exemplo que evita que o usuário digite o caractere "a"
referência dos códigos-chave aqui:
http://www.expandinghead.net/keycode.html
fonte
fonte
Sim, você pode fazer usando jQuery como:
e o script para seu user_availability.php será:
Tentei adicionar para / e \ mas não consegui.
Você também pode fazer isso usando javascript e o código será:
fonte
apenas os números:
ou por tempo incluindo ":"
também incluindo delete e backspace:
infelizmente não fazê-lo funcionar em um iMAC
fonte
Queria comentar sobre o comentário de Alex à resposta de Dale. Não é possível (primeiro precisa de quanto "rep"? Isso não vai acontecer muito em breve .. sistema estranho.) Então, como uma resposta:
Backspace pode ser adicionado adicionando \ b à definição de regex como este: [a-zA-Z0-9 \ b]. Ou você simplesmente permite todo o intervalo latino, incluindo mais ou menos qualquer coisa "não exótica" (também controla caracteres como backspace): ^ [\ u0000- \ u024F \ u20AC] + $
Apenas o caracter Unicode real fora do latim é o símbolo do euro (20ac), adicione o que for necessário.
Para também lidar com a entrada inserida por meio de copiar e colar, simplesmente vincule ao evento "alterar" e verifique a entrada lá também - excluindo-a ou removendo-a / exibindo uma mensagem de erro como "caracteres não suportados".
fonte
Restringir caracteres especiais ao pressionar a tecla. Aqui está uma página de teste para códigos de chave: http://www.asquare.net/javascript/tests/KeyCode.html
No Angular, eu precisava de um formato de moeda adequado no meu campo de texto. Minha solução:
No html, adicione a diretiva
e no controlador angular correspondente, só permito que haja apenas 1 ponto, converto o texto em número e acrescento o arredondamento do número em 'desfocar'
fonte
Para substituir caracteres especiais, coloque espaço e converta para minúsculas
fonte
fonte
Permitir apenas números em TextBox (Restringir alfabetos e caracteres especiais)
fonte
fonte