iOS 9 - Keyup-Ereignis wird nicht ausgelöst

8

Hat jemand anderes Probleme mit dem keyup -Ereignis in iOS 9, das nicht ausgelöst wird?

Nur ein einfaches Testbett repliziert das Problem für mich.

%Vor%

Vanille JS:

%Vor%

jQuery:

%Vor%

Weder Feuer ...

    
keldar 15.10.2015, 15:46
quelle

3 Antworten

0

Es ist nicht schön, aber ein Work around ist, an keydown zu binden, um zu erfassen, welche Taste gedrückt wurde, und input , wenn Sie den Wert erhalten möchten, einschließlich des eingegebenen Schlüssels:

%Vor%

Wenn Sie 'a' eingeben, geschieht Folgendes:

  1. keydown feuert.
  2. e.keyCode wird auf den ASCII-Wert der gedrückten Taste gesetzt.
  3. this.value ist '' (d. h. dasselbe, bevor 'a' eingegeben wurde).
  4. input feuert.
  5. e.keyCode ist undefined .
  6. this.value ist 'a' .

Sie können auch manuell ein Ereignis input auslösen, wenn die Eingabetaste (13) gedrückt wird. input wird standardmäßig nicht von diesem Schlüssel ausgelöst.

    
keldar 16.10.2015, 15:45
quelle
3

Ich schlage vor, das Ereignis keypress in Browsern mit Touchscreens zu verwenden. Ich weiß, dass Sie Touchscreen-Bildschirme nicht wirklich erkennen können lässt Sie mit ein paar Optionen, die Ihre Situation wahrscheinlich diktieren wird.

  1. Fügen Sie beide Ereignisse keyup und keypress hinzu. Dies hängt wahrscheinlich davon ab, wie viel Daten verarbeitet werden und ob in einigen Browsern Doppelbrände auftreten.
  2. Versuchen Sie festzustellen, ob es sich bei dem Browser um einen Touchscreen handelt (z. B. Modernizr ), und hängen Sie dann einen Fallback-Handler wie change .

In jedem Fall erhalten Sie zwei Ereignis-Listener.

    
bassplayer7 08.03.2016 20:22
quelle
1
%Vor%     
Karuppasamy Pandian 30.08.2017 12:32
quelle