Frage: Drücken Sie die Eingabetaste, wenn Sie den Text in der chinesischen Eingabemethode eingeben. Das Ereignis von Binding -Tasten wird den englischen Text in der Eingabemethode in das Textfeld eingeben und die Schaltfläche Senden direkt berühren
Tastaturereignisse:
Wenn eine Taste gedrückt oder veröffentlicht wird, können in jedem Browser drei Tastaturereignisse ausgelöst werden
Schlüsseldown
Schlüsselpress
Schlüssel
Das Tastendown -Ereignis tritt beim Drücken der Taste auf und wird dann ausgelöst. Das Schlüsselereignis wird ausgelöst, wenn der Schlüssel veröffentlicht wird.
Chinesische Eingangsmethode:
FIRFOX: Eingabe -Trigger -Schlüsseldown, Eingabetaste Eingabe -Trigger -Trigger -Tastatur eingeben
Chrome: Eingabetaste Trigger Keydown und KeyUp Geben Sie ein, um zu bestätigen, dass die Eingabe nur den Schlüsseldown auslöst
IE: Eingabetrigger von Keydown und KeyUp eingeben, um die Eingabetrigger -Schlüsseldown, KeyUp zu bestätigen, bestätigen
Safari: Eingabe -Trigger -Schlüsseldown und KeyUp, geben Sie ein, um die Eingabeauslöserschlüsseldown zu bestätigen, KeyUp
Opera: Eingabe -Trigger -Schlüsseldown und KeyUp eingeben, um die Eingabeauslöserschlüsseldown zu bestätigen, KeyUp
In Eingabe und TextArea wird bei der chinesischen Eingangsmethode: Es wird kein Schlüsselpressereignis ausgelöst
TastePress -Ereignis: Die Unterstützung der chinesischen Eingabemethode ist schlecht und kann nicht auf chinesische Eingaben reagieren. Es kann nicht auf Systemfunktionstasten reagieren
HTML -Code:
<textArea name = "" id = "text" cols = "30" rows = "5"> </textarea> <script type = "text/javaScript"> var text = document.getElementById ('text'); text.onkeydown = function (e) {console.log ('keydown'); if (e.keyCode == 13) {console.log ('keydown eingeben'); } console.log ('value', text.Value); } text.onkeypress = function (e) {console.log ('tastePress'); console.log ('value', text.value); } text.onkeyUp = function (e) {console.log ('keyUp'); if (e.keycode == 13) {console.log ('keyUp eingeben send'); } console.log ('value', text.Value); } </script>Englische Eingangsmethode:
Das obige Bild zeigt die Schlussfolgerung:
Tastedown und TastePress erfolgen, wenn der Text nicht in das Eingabefeld eingegeben wurde. Wenn das Textfeld in den Tastatur- und Tastendruckereignissen ausgegeben wird, wird der Text im Textfeld vor dem Tastaturereignis ausgelöst.
Wenn das KeyUp -Ereignis ausgelöst wird, wurde der Betrieb des Eingabetxtes auf dem gesamten Tastaturereignis abgeschlossen, und was erhalten wird, ist der Textinhalt, nachdem das Tastaturereignis ausgelöst wurde.
Chinesische Eingangsmethode: [Kein Schlüsselpressereignis]
Nach dem Drücken der Eingabetaste, um zu bestätigen:
Die chinesische Eingangsmethode drückt die Eingabetaste, wenn die Eingabe nicht bestimmt wird. Der Effekt von Keydown und KeyUp ist unterschiedlich. Keydown löst das voreingestellte Eingabemethodenereignis nicht aus.
Antwort:
Die meisten Eingabemethoden vervollständigen den Eingangsprozess im Schlüsseldown. Wenn sich die Eingabeeingabe im Taste -UP -Ereignis befindet, wird die Eingabetaste direkt an die Eingabetaste gesendet und die Eingabetaste wird eingereicht, was zu Konfliktproblemen führt.
Methode: Ändern Sie das Eingabe -Einreichungsereignis in KeyDown. Zu diesem Zeitpunkt, wenn das Schlüsseldown -Ereignis auftritt, befindet es sich in der Eingabemethode und tritt im Sendeereignis des Einreichungsfelds nicht auf, wodurch der Konflikt gelöst wird.
Einige Tipps:
Nachdem der Schlüsseldown ausgelöst wurde, wird KeyUp möglicherweise nicht ausgelöst. Beim Drücken von Tastedown und das Drücken der Maus wird das Taste -Ereignis nicht ausgelöst.
Schlüsselpress wird hauptsächlich zum Erfassen von ANSI-Zeichen mit Ausnahme von F1-12, Shift, Alt, Strg, Insert, Home, PGUP, Löschen, Ende, PGDN, Scrolllock, Pause, Numlock, { Menüschlüssel}, {Startschlüssel } und Pfeiltasten verwendet.
Keydown und KeyUp können normalerweise alle Tasten auf der Tastatur mit Ausnahme von PRSCRN erfassen
Schlüsselpress kann nur einzelne Zeichen erfassen
Keydown und KeyUp können Schlüsselkombinationen erfassen.
Schlüsselpress erfasst den Fall eines einzelnen Charakters
Keydown und KeyUp sind beide ein Wert für den von einem einzelnen Zeichen erfassten KeyValue, was bedeutet, dass der Fall eines einzelnen Zeichens nicht beurteilt werden kann.
Schlüsselpress unterscheidet nicht zwischen numerischen Zeichen aus der primären Tastatur.
Keydown und KeyUp unterscheiden numerische Zeichen von der primären Tastatur.
Unter ihnen können die PRSCRN Keys Keypress, Keydown und KeyUp nicht erfasst werden.
Wenn Sie die Tastatur verwenden, verwenden Sie normalerweise die Tastenkombinationsfunktion ähnlich wie bei Strg+Shift+Alt.
Der obige Artikel über die Konfliktlösung der Eingabemethode und der Verknüpfungsschlüssel zum Senden von Nachrichten sind alle vom Editor geteilten Inhalte. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.