Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung des Unterschieds zwischen jQuery-Tastaturereignis „Keydown“ und „Keypress“.

Detaillierte Erläuterung des Unterschieds zwischen jQuery-Tastaturereignis „Keydown“ und „Keypress“.

黄舟
黄舟Original
2017-06-27 13:54:041947Durchsuche

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(&#39;input&#39;);
input.onkeydown = function() {
    console.log(&#39;onkeydown &#39; + this.value);
}
input.onkeypress = function() {
    console.log(&#39;onkeypress &#39; + this.value);
}
input.onkeyup = function() {
    console.log(&#39;onkeyup &#39; + this.value);
}</script>

2. Der Hauptunterschied zwischen dem Tastendruckereignis und Keydown und Keyup

onkeydown default
onkeypress default
onkeyup default1
1) Es unterstützt die chinesische Eingabemethode nicht gut und kann es auch nicht auf chinesische Eingaben reagieren

2) 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“.

4. textInput-Ereignis

Das Tastaturantwortereignis des Textfelds ist auch: keydown -> keyup
<input id="input" value="default" type="text" />
<script>var input = document.getElementById(&#39;input&#39;);
input.onkeydown = function() {    //return false;
    console.log(&#39;onkeydown &#39; + this.value);
}
input.onkeypress = function() {    //return false;
    console.log(&#39;onkeypress &#39; + this.value);
}
input.onkeyup = function() {    return false;
    console.log(&#39;onkeyup &#39; + 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

-Steuerelement

ausgelö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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn