Ich möchte feststellen, ob der Benutzer Entermit jQuery gedrückt hat .
Wie ist das möglich? Benötigt es ein Plugin?
EDIT: Es sieht so aus, als müsste ich die keypress()
Methode verwenden.
Ich wollte wissen, ob jemand weiß, ob es Browserprobleme mit diesem Befehl gibt - wie gibt es Probleme mit der Browserkompatibilität, über die ich Bescheid wissen sollte?
Antworten:
Der springende Punkt bei jQuery ist, dass Sie sich keine Gedanken über Browserunterschiede machen müssen. Ich bin mir ziemlich sicher, dass Sie mit enter13 in allen Browsern sicher sein können . In diesem Sinne können Sie Folgendes tun:
quelle
$(window)
unter IE gebundenIch habe ein kleines Plugin geschrieben, um das Binden der "On Enter-Taste gedrückt" eines Ereignisses zu vereinfachen:
Verwendungszweck:
quelle
#input
<input>
$("#input").on("someevent","someselector",function () {})
Ich konnte den von @Paolo Bergantino geposteten Code nicht zum Laufen bringen, aber als ich ihn geändert habe
$(document)
unde.which
stattdessene.keyCode
festgestellt habe, dass er fehlerfrei funktioniert.Link zum Beispiel auf JS Bin
quelle
Ich fand das browserübergreifender kompatibel:
quelle
Sie können dies mit dem Ereignis-Handle "keydown" von jquery tun
quelle
Verwenden Sie
event.key
und moderne JS!oder ohne jQuery:
Mozilla Docs
Unterstützte Browser
quelle
Ich habe einige Zeit damit verbracht, diese Lösung zu finden. Ich hoffe, sie hilft jemandem.
quelle
Es gibt eine keypress () -Ereignismethode . Die ASCII-Nummer der Eingabetaste lautet 13 und hängt nicht davon ab, welcher Browser verwendet wird.
quelle
Eine geringfügige Erweiterung der obigen Antwort von Andrea macht die Hilfsmethode nützlicher, wenn Sie möglicherweise auch geänderte Eingabetasten erfassen möchten (z. B. Strg-Eingabe oder Umschalt-Eingabe). Diese Variante ermöglicht beispielsweise eine Bindung wie:
Senden eines Formulars, wenn der Benutzer die Strg-Eingabetaste drückt, wobei der Schwerpunkt auf dem Textbereich des Formulars liegt.
(Siehe auch Strg + Enter jQuery in TEXTAREA )
quelle
In einigen Fällen müssen Sie möglicherweise den ENTERSchlüssel für einen bestimmten Bereich einer Seite unterdrücken, jedoch nicht für andere Bereiche einer Seite, z. B. die folgende Seite, die einen Header
<div>
mit einer SUCHE enthält Feld enthält.Ich habe ein bisschen gebraucht, um herauszufinden, wie das geht, und ich poste dieses einfache, aber vollständige Beispiel hier oben für die Community.
Link zum JSFiddle-Spielplatz : Die
[Submit]
Schaltfläche bewirkt nichts, aber durch Drücken ENTEReines der Textfeld-Steuerelemente wird das Formular nicht gesendet.quelle
Versuchen Sie dies, um die gedrückte Eingabetaste zu erkennen.
Siehe Demo @ Detect Enter-Tastendruck auf der Tastatur
quelle
Da das
keypress
Ereignis nicht durch eine offizielle Spezifikation abgedeckt ist, kann das tatsächliche Verhalten bei seiner Verwendung je nach Browser, Browserversion und Plattform unterschiedlich sein.Ich hoffe es wäre nützlich!
quelle
keypress
es nicht mehr in der Spezifikation ist, ist, dass es veraltet ist ( MDN ).Der einfache Weg, um festzustellen, ob der Benutzer die Eingabetaste gedrückt hat, besteht darin, die Schlüsselnummer zu verwenden. Die Eingabetaste lautet = 13, um den Wert der Taste in Ihrem Gerät zu überprüfen
Durch Drücken der Eingabetaste erhalten Sie das Ergebnis 13. Mit dem Schlüsselwert können Sie eine Funktion aufrufen oder tun, was Sie wollen
Wenn Sie nach Drücken der Eingabetaste auf eine Schaltfläche zielen möchten, können Sie den Code verwenden
Hoffe es hilft
quelle
Ich denke, die einfachste Methode wäre die Verwendung von Vanille- Javacript:
quelle
quelle
quelle
Ich habe benutzt
$(document).on("keydown")
.In einigen Browsern
keyCode
wird dies nicht unterstützt. Das Gleiche giltwhich
, wenn dieskeyCode
nicht unterstützt wird, müssen Sie es verwendenwhich
und umgekehrt.quelle