Rolf B: input aktuell geschriebenes Zeichen ermitteln

Beitrag lesen

Hallo Henry,

so nicht. Das input-Eventobjekt hat ein paar Properties, die Dir helfen. Unser Wiki dokumentiert sie nicht, aber MDN.

Beim normalen Tippen bekommst Du inputType "insertText", und in data steht das, was eingefügt wird.

Wenn was gelöscht wird, bekommst Du einen der delete-Typen, und da gibt's eine Menge.

Wo gerade der Cursor ist, bekommst Du über die Eigenschaften selectionStart und selectionEnd des input-Elements heraus.

Ob Du daraus in jedem Fall rekonstruieren kannst, was der Anwender gerade geändert hat? Hmmm. Spätestens bei einem Paste hast Du verloren, denn dann steht der eingefügte Text nicht im input Event (gerade ausprobiert).

Ich nehme an, der Abgleich ist die einzige sichere Lösung. Du könntest Dich auf beforeinput und input registrieren. Im beforeinput-Event speicherst Du Dir den aktuellen value des input und im input-Event vergleichst Du mit dem Wert nach der Änderung. Bezugspunkt für den Vergleich sollte auch hier die selection sein, denn wie willst Du sonst herausfinden, wo jemand in "Haaaaaaaalllo" gerade ein a eingefügt hat - wenn Dich das denn interessiert…

Auf diese Weise solltest Du unabhängig von der Eingabemethode (Tippen, Cut/Paste, Drag/Drop) alle Änderungen herausbekommen.

Rolf

--
sumpsi - posui - obstruxi