Tach!
Ja hattest du, ich hab aber kein plan was du sagst. Bzw, warum das besser sein sollte als so wie es jetzt ist und ja auch schon so funktioiert hat.
Du hast Funktionalität nachgebaut, die bereits vorhanden ist.
<form onsubmit="post_chat(); event.preventDefault();">
<!-- hier muss noch das select rein -->
<input type="text" id="chat_text">
<button class="button">Send</button>
</form>
Das ist alles was du brauchst. [1] Klickst du auf den Button, wird Submit ausgelöst. Drückst du Enter im Eingabefeld, wird auch Submit ausgelöst. Es reicht nun, sich nur in das Submit einzuklinken.
Schade nur das ich mit den meisten Sachen einfach nichts anfangen kann und nicht verstehe was die machen oder verhindern sollen oder was auch immer.
Es gibt Default-Aktionen, die in den Browsern eingebaut sind. Ein Submit schickt das Formular ab. Ein Submit-Button löst beim Klick das Submit aus. Wenn man solche Default-Aktionen nicht haben möchte, dann muss man sie verhindern. In deinem Beispiel möchtest du das Formular nicht an den Server geschickt haben, sondern du möchtest selbst was mit Javascript erreichen. Du kannst aber trotzdem die generelle Submit-Funktionalität der Browser nutzen - also zumindest den Teil, der vor dem eigentlichen Starten des Requests zum Server stattfindet - musst aber verhindern, dass sie weiterarbeitet, nachdem du dich da eingeklinkt hast.
dedlfix.
für die Mitleser: ja, da steht ein herkömmlicher onsubmit-Handler, ich habe es nicht auf die Verwendung von addEventListener() umgeschrieben. ↩︎