input aktuell geschriebenes Zeichen ermitteln
Henry
- html
- javascript
-1 Henry1 MudGuard0 Tabellenkalk0 Rolf B
Hallo,
bsp. alles <input oninput="alert(this value);">
oder letztes zeichen: <input oninput="alert(this.value.slice(-1));">
aber, wie finde ich raus welches Zeichen ich mittendrin irgendwo reinschreibe? Denke jetzt an einen Abgleich oder so was, aber gibts da nicht was einfacheres?
Gruss
Henry
Hallo,
habe mittlerweile eine Lösung gefunden. Bin nur noch nicht sicher ob es da keine bessere gibt?
<input onkeypress="alert(String.fromCharCode(event.which));">
Gruss
Henry
Hi,
habe mittlerweile eine Lösung gefunden. Bin nur noch nicht sicher ob es da keine bessere gibt?
<input onkeypress="alert(String.fromCharCode(event.which));">
Funktioniert das auch bei Paste per Maus?
cu,
Andreas a/k/a MudGuard
@@MudGuard
habe mittlerweile eine Lösung gefunden. Bin nur noch nicht sicher ob es da keine bessere gibt?
<input onkeypress="alert(String.fromCharCode(event.which));">
Funktioniert das auch bei Paste per Maus?
Oder bei Spracheingabe?
😷 LLAP
Hallo Gunnar,
Oder bei Spracheingabe?
Ja, wie denn? Wie signalisiert der Browser eine Spracheingabe? Simuliert er Tastenanschläge? Ein "spake"
Event gibt's ja nicht (thus spake yon user!)
Oder macht er für jedes Fragment, das er erkannt hat, eine Einfügen-Operation?
Rolf
@@Rolf B
Oder bei Spracheingabe?
Ja, wie denn? Wie signalisiert der Browser eine Spracheingabe?
Ohne das jetzt ausprobiert zu haben würde ich erwarten, dass das input
-Event auch bei Änderungen des Werts eines Eingabefelds durch Spracheingabe feuert.
😷 LLAP
Hallo,
habe mittlerweile eine Lösung gefunden.
Vielleicht stellst du uns erstmal dein eigentliches Problem vor?
Gruß
Kalk
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