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>