Ich weiß nicht warum, aber nach Stunden, die ich damit verbracht habe, kann ich sagen, dass etwas nicht stimmt.
Ich habe eine einfache Eingabe
%Vor%Ich will, dass es nur Zahlen akzeptiert (Ziffer [0-9]) und nichts mehr. Um dies zu erreichen, habe ich einen Ereignis-Listener hinzugefügt, wo ich den Schlüsselcode des Ereignisses kontrolliere.
Nichts besonderes und alles funktioniert auf fast allen Plattformen, Probleme kommen mit Android. Hier das
type="Nummer"
bewirkt, dass eine numerische Tastatur erscheint - und das ist großartig - mit einigen anderen Zeichen (Komma, Punkt, Bindestrich ...). Wenn Sie eines dieser Sonderzeichen drücken, ist das Verhalten seltsam:
Was vermisse ich?
Meine Umgebung wird von AngularJs angetrieben, also habe ich Event-Listener innerhalb einer Direktive eingerichtet. Das gleiche Vorgehen mit jQuery löst jedoch keine Probleme.
Jemand kann vorschlagen, einen "$ parsers" zu verwenden, um meinen benutzerdefinierten Wert ohne unerwünschte Zeichen zu übertragen. Wie auch immer, das funktioniert nicht, ich denke, weil der Typ der Eingabe "Nummer" ist und es nur Zahlen erwartet (eine andere Möglichkeit zu sagen, der Browser auf Android macht etwas falsch ..)
Hier ist eine arbeitende Geige , die auf Android geöffnet wird.
Danke
Was ist mit dieser Direktive mit $parsers.unshift
:
Und Verwendung:
%Vor%Getestet auf Android
Tags und Links javascript angularjs android javascript-events input