Groups | Search | Server Info | Login | Register


Groups > de.comp.lang.javascript > #5359

Re: Eingabefeld wird nicht geleert

From Stefan Reuther <stefan.news@arcor.de>
Newsgroups de.comp.lang.javascript
Subject Re: Eingabefeld wird nicht geleert
Date 2023-04-12 18:55 +0200
Message-ID <u16urc.3ho.1@stefan.msgid.phost.de> (permalink)
References <u165tt$1hiia$1@gwaiyur.mb-net.net>

Show all headers | View raw


Am 12.04.2023 um 13:50 schrieb Jan Novak:
> ich habe in einer Form ein Eingabefeld, welches per JS eine ganze Reihe
> an autocomplete Inhalte hinzugefügt bekommen hat.
[...]
> mache. Aber das Element bleibt mit dem letzten Text aus dem autocomplete
> stehen. Zwei Dinge hierzu:

Ich würde den Fehler im Autocomplete-Code suchen, den du nicht gezeigt
hast. Unten eine Variation deines Codes, die bei mir tut wie gewünscht.

Spontane Vermutung: das Autocomplete-Element hat weiterhin den Fokus,
bekommt den 'Enter'-Tastendruck, und löst damit das Autocomplete einfach
erneut aus. Ich seh zumindest in deiner addTag-Funktion nichts, das das
Weiterpropagieren des Events stoppen würde.

Zum Debuggen sind ansonsten die alten Methoden einfach noch die besten:
alle Eventhandler verprinten (console.log) und dann siehst du in der
Konsole, was in welcher Reihenfolge kommt.


  Stefan



<html>
  <body>
    <input id="SEARCH_TAGS" />
    <button id="WHAT">Set</button>
    <ul id="TAG_LIST">
    </ul>
  </body>
  <script>
    document.addEventListener('keydown', function addTag() {
      var taginput=document.getElementById("SEARCH_TAGS").value;
      if(event.key === 'Enter' && taginput != "") {
        // tue etwas mit dem Tag
        var e = document.createElement("LI");
        e.appendChild(document.createTextNode(taginput));
        document.getElementById("TAG_LIST").appendChild(e);

        document.getElementById("SEARCH_TAGS").value = "";
      }
    });
    document.getElementById("WHAT").addEventListener('click', function() {
      var e = document.getElementById("SEARCH_TAGS");
      e.value = "what";
      e.focus();
    });
  </script>
</html>

Back to de.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Eingabefeld wird nicht geleert Jan Novak <repcom@gmail.com> - 2023-04-12 13:50 +0200
  Re: Eingabefeld wird nicht geleert Jan Novak <repcom@gmail.com> - 2023-04-12 14:48 +0200
  Re: Eingabefeld wird nicht geleert Stefan Reuther <stefan.news@arcor.de> - 2023-04-12 18:55 +0200
    Re: Eingabefeld wird nicht geleert Jan Novak <repcom@gmail.com> - 2023-04-17 15:34 +0200

csiph-web