2010-10-12 8 views
7

Ich frage das nicht, weil ich eine Arbeit-A-Around brauche. Ich habe eine, die gut funktioniert, aber ich möchte wissen, warum es nicht funktioniert. Ist dieser Fehler in JavaScript (oder JQuery, weil ich den JQuery .keypress Handler verwendet) oder gibt es einen bestimmten Grund, warum das so ist?Warum nicht Taste drücken Sie die Löschtaste und die Rücktaste

Vielen Dank im Voraus.

Antwort

15

Das Ereignis keypress wurde für die Behandlung eines vom Benutzer eingegebenen Zeichens entwickelt, anstatt die Tastaturaktivität zu erkennen, und die Tasten zum Löschen und Zurücksetzen generieren keine Zeichen. Einige Browser verwischen diese Zeile etwas, aber das allgemeine Prinzip ist, dass die Ereignisse keyup und keydown da sind, um jede Taste zu erkennen, die gedrückt wird, und Ihnen zu sagen, welcher Schlüssel es ist, während keypress für das Erkennen eines tatsächlichen Zeichens getippt wird.

2

Die kurze Antwort ist, dass das onkeypress-Ereignis nicht für alle Schlüsseltypen in allen Browsern ausgelöst wird. Überprüfen Sie das Handbuch für Ihren Browser.

Warum?

Wahrscheinlich keine umfassende Antwort, aber betrachten Sie Shift, wenn es untergeht und wenn es relativ zu anderen Schlüsseln auftaucht, ist signifikant. Und verschiedene Tastatur-Hardware hat verschiedene Schlüssel-Rollover-Eigenschaften, über die Sie im Detail wissen möchten.