Ist es OK, Sie zu ignorieren keydown-Ereignisse mit keyCode = 229?

Am Anfang wollte ich die überwachung der änderungen an einem <input type="text"> in Echtzeit (zum Beispiel, genau dann, wenn der Benutzer eine Taste drückt). Die onChange Ereignis nicht funktionieren, weil es nur ausgelöst wird, wenn der Benutzer die EINGABETASTE drückt oder entfernt den Fokus von der input-element. Dann sah ich diese Frage auf StackOverflow. Ich habe versucht, den code aus, dass die Antwort, aber das problem ist, dass ich nicht benachrichtigt werden willst drückt, die repräsentieren nicht druckbare Zeichen, also musste ich es ändern, auf diese Weise zu machen, stellen Sie sicher, dass es gibt druckbare Zeichen in den Veranstaltungen:

...

textInputElement.onKeyDown.listen((KeyboardEvent ev) {
  if (new String.fromCharCode(ev.keyCode).length > 0) {
    callAFunction();
  }
});

...

(+ die gleiche änderung für die onKeyUp event)

Wenn ich getestet, diese im Dartium ich sah, dass durch die Konzentration im input-element und drücken Sie dann eine beliebige Taste, ein keydown Ereignis wird ausgelöst, mit ev.keyCode = ev.which = 229 und ev.charCode = 0. Unmittelbar nach diesem Ereignis ein weiterer keydown Ereignis wird ausgelöst, mit der richtigen ev.keyCode = ev.which von der gedrückten Taste und ev.charCode = 0. Ich Verstand nicht, wo diese 229 Schlüssel war aus, aber ich sah, dass es ein druckbares Zeichen, å. Ich suchte im Internet und ich habe festgestellt, dass andere haben dieses Problem, und manchmal sind Sie mit anderen Programmiersprachen und-Technologien. Einen entsprechenden link ist diese und die ausgewählte Update ist in diese sehr kleine verpflichten - wählten Sie, um alle Ereignisse ignoriert, die keyCode = 229 mit der Erklärung, dass die neuesten Versionen von Chrome/Chromium/WebKit begonnen, senden Sie diese keydown-Ereignisse vor jedem standard, Tastatur-Ereignisse, und Ihre Bedeutung ist, dass die Benutzer drückt einen Taster. aber-input-Methode ist immer noch die Verarbeitung, die oder input method editor ist die Bearbeitung der Schlüssel-Eingang.

Meine Frage ist, ist es OK, Sie zu ignorieren keydown Veranstaltungen mit keyCode = 229 wenn new String.fromCharCode(229) gibt druckbare Zeichen "å"? Ich dachte über die mögliche situation, dass ein echter Schlüssel, der produziert den gleichen Schlüssel code und seine entsprechenden Charakter.

Ich danke Euch für jede Art von Hilfe!

Dies ist nicht die Beantwortung Ihrer Frage direkt, aber Sie können verwenden Sie die "input" - Ereignis, um zu ermitteln, wenn (und nur wenn) Sie den Wert Ihres Textfelds ändert. Siehe developer.mozilla.org/en-US/docs/Web/Events/input.

InformationsquelleAutor silviubogan | 2014-07-30

Schreibe einen Kommentar