Dialog Element, alle Eingaben löschen
der henry
- javascript
0
Rolf B
1
anna_schulz_dev
0
Rolf B
Hallo,
ich habe ein Dialog Element mit vielen Eingabefeldern. Wie kann ich beim beenden (close) alle Eingabefelder leeren, so eine Art "reset/delete"
Ich habe es mit
document.getElementById('dialog').reset(); document.querySelector('dialog').reset();
probiert ... reset wird nicht erkannt.
???
Hallo Henry,
gar nicht. Ein dialog-Element kümmert sich nicht um seine Inhalte.
Aber: Du kannst in das dialog-Element ein form-Element einfügen (mit method="dialog") und darin die Eingabefelder. Dann kannst Du auf dem form-Element die reset-Methode aufrufen. Und ein submit des Forms schließt den Dialog. Im Wiki sprechen wir das hier an.
Rolf
Guten Morgen,
vielen Dank, genau so funktioniert es.
der henry
Wenn das dialog nicht direkt ein Formular ist, ist reset() tatsächlich der falsche Empfänger. Praktisch würde ich die Felder in ein <form method="dialog"> packen und beim Schließen das Formular zurücksetzen, z.B. dialog.addEventListener("close", () => form.reset()). Dann ist auch klar, ob nur beim Abbrechen oder bei jedem Schließen geleert werden soll.
Hallo anna_schulz_dev,
und beim Schließen das Formular (per Eventhandler) zurücksetzen
Kann man machen, würde ich aber nicht tun.
Bisher habe ich das Ergebnis eines Dialogs im close-Event verarbeitet, aus dem Grund, dass die returnValue-Eigenschaft des Dialogs (in der der value des Buttons landet, der den Dialog schließt), im submit-Event des Forms noch nicht gesetzt ist.
Je nach erforderlicher Aktivität im close-Handler kann man sich mit einem reset() im close-Handler gelegentlich mal in den Fuß schießen; ich würde ein Form deshalb lieber beim Öffnen initialisieren.
Rolf