Gostaria de detectar se o usuário pressionou Enterusando o jQuery.
Como isso é possível? Requer um plugin?
Edição: Parece que eu preciso usar o keypress()
método.
Eu queria saber se alguém sabe se há problemas no navegador com esse comando - como existem problemas de compatibilidade do navegador que eu deva conhecer?
Respostas:
O ponto principal do jQuery é que você não precisa se preocupar com as diferenças do navegador. Tenho certeza de que você pode enterter 13 anos em todos os navegadores. Então, com isso em mente, você pode fazer o seguinte:
fonte
$(window)
IE) quirksmode.org/dom/events/keys.htmlEu escrevi um pequeno plug-in para facilitar a vinculação do evento "ao pressionar a tecla Enter":
Uso:
fonte
#input
no<input>
campo)$("#input").on("someevent","someselector",function () {})
Não consegui que o código postado por @Paolo Bergantino funcionasse, mas quando mudei para
$(document)
e, eme.which
vez dissoe.keyCode
, achei que funcionava sem falhas.Link para o exemplo no JS Bin
fonte
Achei isso mais compatível com vários navegadores:
fonte
Você pode fazer isso usando o identificador de evento jquery 'keydown'
fonte
Use
event.key
e JS moderno!ou sem jQuery:
Documentos do Mozilla
Navegadores suportados
fonte
Passei algum tempo inventando esta solução, espero que ajude alguém.
fonte
Existe um método de evento keypress () . O número ascii da tecla Enter é 13 e não depende de qual navegador está sendo usado.
fonte
Uma pequena extensão da resposta de Andrea acima torna o método auxiliar mais útil quando você também pode capturar pressionamentos de tecla modificados (por exemplo, ctrl-enter ou shift-enter). Por exemplo, esta variante permite a ligação como:
para enviar um formulário quando o usuário pressionar ctrl-enter com foco na área de texto desse formulário.
(veja também Ctrl + Enter jQuery em TEXTAREA )
fonte
Em alguns casos, pode ser necessário suprimir a ENTERchave para uma determinada área de uma página, mas não para outras áreas de uma página, como a página abaixo que contém um cabeçalho
<div>
com um campo SEARCH .Demorei um pouco para descobrir como fazer isso, e estou postando este exemplo simples e completo aqui para a comunidade.
Link para o JSFiddle Playground : O
[Submit]
botão não faz nada, mas pressionar ENTERum dos controles da Caixa de texto não enviará o formulário.fonte
Tente isso para detectar a tecla Enter pressionada.
Veja demo @ detect pressione a tecla Enter no teclado
fonte
Como o
keypress
evento não é coberto por nenhuma especificação oficial, o comportamento real encontrado ao usá-lo pode diferir entre navegadores, versões e plataformas.Espero que seja útil!
fonte
keypress
não está nas especificações (mais) é que foi preterido ( MDN ).A maneira mais fácil de detectar se o usuário pressionou enter é usar o número da tecla, o número da tecla enter é = 13 para verificar o valor da tecla no seu dispositivo
pressionando a tecla Enter, você obterá o resultado como 13. usando o valor da chave, você pode chamar uma função ou fazer o que quiser
se você quiser direcionar um botão depois que a tecla Enter for pressionada, você pode usar o código
Espero que ajude
fonte
Eu acho que o método mais simples seria usar javacript de baunilha :
fonte
fonte
fonte
Eu usei
$(document).on("keydown")
.Em alguns navegadores
keyCode
não é suportado. O mesmo comwhich
o caso,keyCode
se não for suportado, você precisará usarwhich
e vice-versa.fonte