Henry: input aktuell geschriebenes Zeichen ermitteln

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

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
  1. 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

    --
    Meine Meinung zu DSGVO & Co:
    „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
    1. 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

      1. @@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

        --
        “When I was 5 years old, my mother always told me that happiness was the key to life. When I went to school, they asked me what I wanted to be when I grew up. I wrote down ‘happy.’ They told me I didn’t understand the assignment, and I told them they didn’t understand life.” —John Lennon
        1. 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

          --
          sumpsi - posui - obstruxi
          1. @@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

            --
            “When I was 5 years old, my mother always told me that happiness was the key to life. When I went to school, they asked me what I wanted to be when I grew up. I wrote down ‘happy.’ They told me I didn’t understand the assignment, and I told them they didn’t understand life.” —John Lennon
    2. Hallo,

      habe mittlerweile eine Lösung gefunden.

      Vielleicht stellst du uns erstmal dein eigentliches Problem vor?

      Gruß
      Kalk

    3. 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