Formulareingaben nach Absenden löschen
<script>
Vor einiger Zeit erhielten wir eine Anfrage, wie man die Formulareingaben nach dem Absenden wieder löschen kann.
Hintergrund war, dass die Daten alle im Cache des Browsers gespeichert wurden und Anlass geben könnten, dass somit mehrmals ein Formular abgesendet werden könnte.
Hierzu haben wir ein Formular erstellt, was diese Funktion beinhaltet. Zur Verdeutlichung wird die Sendebestätigung in einem kleinen Popup geöffnet.
Das Formular ist voll funktionsfähig,
d.h. wir erhalten wirklich die Daten per eMail.
Quelltext-Auszug:
<form action="https://www.onlex.de/_formmailer.php4?username=formws" method="POST" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8" onsubmit="window.open('about:blank','fenster', 'width=350,height=250,left=250,top=250'); setTimeout('document.Kontakt.reset();', 3000);return true;" name="Kontakt" target="fenster">
[...]
</form>
Bitte den Benutzernamen (hier rot und kursiv dargestellt) beim Kopieren anpassen.
Im obigen Beispiel wurden die beiden Funktion "
Sendebestätigung im Popup" und "Formulareingaben nach dem Absenden löschen" kombiniert.
Es wird jetzt auf die letztere der beiden Funktionen eingegangen.
setTimeout
ist eine weitere Methode im Objekt
window
. Siehe hierzu das SelfHTML-Kapitel
window.
Es werden zwei Parameter erwartet:
-
JavaScript Anweisung / Funktion, die verzögert ausgeführt werden soll
-
Wert in Millisekunden bis zum Ausführen
In diesem Fall soll die Funktion das Löschen der Formulareingaben (
reset
) nach dem Absenden (
onSubmit
) ausgeführt werden.
document.Kontakt.reset();
Das Objekt
document
bezieht sich auf die aktuelle Seite, die im Browser geladen ist. Danach folgt ein Bezug (
Kontakt
) auf ein Element in diesem Dokument: Unser Formular. Daher ist es wichtig, dass das Formular einen eindeutigen Namen (
name="Kontakt"
) bekommt. Bitte hier auf Gross- und Kleinschreibung und auf doppelte Vergaben dieses
name
-Attributs achten. Mit
reset()
wird ei Funktion angegeben: Das Löschen der Formulareingaben in den Urzustand.
3000
Diese Zahl gibt die Dauer in Millisekunden an: 3000 Millisekunden = 3 Sekunden.
↑
zum Seitenanfang ↑