Gibt es eine Möglichkeit, die Backspace-Taste auf einem input[type="text"]
in BlackBerry zu erfassen? Ich habe versucht mit $('input[type="text"]').bind('keydown', function(event) { ... });
und es erfasst alle wichtigen Presseereignisse mit Ausnahme der für die Rücktaste (del). Durch Drücken dieser Taste wird kein Schlüsselereignis ausgelöst.
Kennt jemand eine Möglichkeit, das Ereignis zu erfassen?
Ich entwickle für OS 6.0 und teste mit dem BlackBerry Simulator 9800.
EDITED - der Code, den ich gerade teste
%Vor%Ich bin gerade auf diesen Ärger gestoßen und habe diese Frage bei meiner Suche nach Antworten gefunden, also hier sind Details meiner Untersuchung und Lösung (gut, Workaround).
Die Ereignisse keyup
und keydown
werden nicht einfach an den Elementen input
oder textarea
im Blackberry-Browser ausgelöst, wenn die Rücktaste gedrückt wird. It wird jedoch ausgelöst, wenn der Event-Handler an das document
gebunden ist:
Warum das der Fall ist, habe ich absolut keine Ahnung. Das Ereignis keyup
sollte sprudeln, und das tut es, aber da es nicht einmal ausgelöst wird, wenn Sie die Rücktaste drücken, ist das nicht viel sinnvoll.
Aber es gibt noch ein anderes Ereignis. Das Ereignis input
wird vom Blackberry-Browser unterstützt und wird korrekt ausgelöst, wenn sich der Wert des Elements ändert (einschließlich glücklicherweise für uns, wenn diese Änderung auf ein Drücken der Rücktaste zurückzuführen ist).
Daher können wir das Problem umgehen, indem wir Event-Handler sowohl an keydown
als auch an input
binden. Das Ereignis keydown
wird vor input
ausgelöst, außer wenn die Rücktaste gedrückt wird. In diesem Fall wird keydown
nicht ausgelöst. So können wir das ganz leicht verfolgen:
Einige Anmerkungen:
Soweit ich das beurteilen kann, ist dies nur ein Problem im Browser auf Blackberry 6. Ich habe Blackberry 5 (physisches Gerät und Simulator) und 7 (Simulator) getestet und beide werden keydown
und keyup
Ereignisse für den Rückschrittschlüssel.
Diese "Korrektur" funktioniert in fast jedem Browser, in dem ich sie getestet habe (damit Sie Blackberry 6 richtig nutzen können, ohne andere Browser zu stören), außer Opera Mobile (getestet in Version 12), was für einige gilt reason mag das input
-Ereignis manchmal zweimal auslösen.
Dadurch können Sie nur die Rücktaste drücken, wenn sich Text in der zu löschenden Eingabe befindet (andernfalls wird das input
-Ereignis nicht ausgelöst). Dies ist wahrscheinlich der größte Fehler des Skripts.
Sie finden hier ein funktionierendes Beispiel hier , aber zum Testen mobiler Geräte ist es schneller, eingebettete Version .
Sie können Ссылка verwenden, um zu sehen, welchen Schlüsselcode Sie zurückbekommen . Auf BlackBerry 9900 7.1 bekomme ich keyCode 8.
Es gibt keine Möglichkeit, dies im allgemeinen Browser zu erreichen.
Die einzige Möglichkeit, das Backkey-Ereignis mithilfe von JavaScript zu verfolgen, besteht darin, a zu verwenden Widget / WebWorks-Anwendung mit
KEY_BACK
API.
Tags und Links blackberry jquery-mobile javascript-events key-events blackberry-simulator