Heim > Artikel > Web-Frontend > Detaillierte Erläuterung des Unterschieds zwischen jQuery-Tastaturereignis „Keydown“ und „Keypress“.
Tastaturereignisse werden ausgelöst, wenn die Tastatur gedrückt wird, in der Reihenfolge Tastendruck –>Tastendruck –>Tastendruck.
1. Die Keydown- und Keypress-Ereignisse werden ausgelöst, bevor der Text in das Textfeld eingegeben wird. Wenn der Text im Textfeld in den Keydown- oder Keypress-Ereignissen ausgegeben wird, wird der Text vor dem eingegeben Tastaturereignis wird ausgelöst, und keyup Wenn das Ereignis ausgelöst wird, ist der gesamte Tastaturereignisvorgang abgeschlossen. Was erhalten wird, ist der Text, nachdem das Tastaturereignis ausgelöst wurde. Geben Sie die Nummer 1 ein Textfeld und das Ausgabeergebnis ist:
<input id="input" value="default" type="text" /> <script>var input = document.getElementById('input'); input.onkeydown = function() { console.log('onkeydown ' + this.value); } input.onkeypress = function() { console.log('onkeypress ' + this.value); } input.onkeyup = function() { console.log('onkeyup ' + this.value); }</script>
2. Der Hauptunterschied zwischen dem Tastendruckereignis und Keydown und Keyup
onkeydown default onkeypress default onkeyup default11) Es unterstützt die chinesische Eingabemethode nicht gut und kann es auch nicht auf chinesische Eingaben reagieren2) Es kann nicht auf Systemfunktionstasten (z. B. Löschen, Rücktaste) reagieren) 3) Aufgrund der beiden vorherigen Einschränkungen stimmt keyCode nicht mit keydown und keyup überein 3. Das Browser-Standardereignis kann im Keyup-Ereignis nicht verhindert werden, da beim Tastendruck das Standardverhalten
des Browsers abgeschlossen ist, d In das Textfeld eingegeben (obwohl es noch nicht angezeigt wird). Weder „preventDefault“ noch „return false“ können das Verhalten der Texteingabe in das Textfeld verhindern Verhindern Sie dies während des Tastendrucks oder Tastendrucks. Das Ergebnis ist die Rückgabe von „false“ bei den Ereignissen „keydown“ und „keypress“.
Das Tastaturantwortereignis des Textfelds ist auch: keydown -> keyup<input id="input" value="default" type="text" /> <script>var input = document.getElementById('input'); input.onkeydown = function() { //return false; console.log('onkeydown ' + this.value); } input.onkeypress = function() { //return false; console.log('onkeypress ' + this.value); } input.onkeyup = function() { return false; console.log('onkeyup ' + this.value); }</script>
Das textInput-Ereignis wird hauptsächlich als Ersatz für Tastendruck verwendet. Der Hauptunterschied zu Tastendruck besteht darin, dass es die chinesische Eingabemethode unterstützt. Ein weiterer Punkt besteht darin, dass textInput nur mit bearbeitbarem Text funktioniert ausgelöst (z. B. Eingabe, Textbereich) und Tastendruck können durch jedes
-Steuerelementausgelöst werden, das den Fokus erhalten kann (z. B. eine Schaltfläche). Derzeit ist dies jedoch nicht sehr gut unterstützt durch Safari und Chrome.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Unterschieds zwischen jQuery-Tastaturereignis „Keydown“ und „Keypress“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!