Supportnet / Forum / Webseiten/HTML
Formulardaten nach senden löschen
Frage
Hallöchen
Ich habe ein Webmail-Login in der Indexdatei kreiert, der nach dem "klick" auf Senden in einem neuen Fenster geöffnet wird. Nun möchte ich, das nach dem senden der Daten und dem öffnen des neuen Fenster der Benutzername und das Passwort im Formular gelöscht wird. Wie kriege ich das hin?
Der Form-Tag sieht folgend aus:
<FORM ACTION="http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387" METHOD="post" NAME="loginForm" target="webmail" onsubmit="window.open(´http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387´,´webmail´,´width=730´,´height=630´);">
Vielen Dank für die Hilfe, axe :-)
Antwort 1 von Whachholger
Häng einfach den Reset-Befehl hinten dran:
<FORM ACTION="http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387" METHOD="post" NAME="loginForm" target="webmail" onsubmit="window.open(´http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387´,´webmail´,´width=730´,´height=630´);document.loginForm.reset();">
<FORM ACTION="http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387" METHOD="post" NAME="loginForm" target="webmail" onsubmit="window.open(´http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387´,´webmail´,´width=730´,´height=630´);document.loginForm.reset();">
Antwort 2 von axe
Hey Whachholger
Im Ansatz gut, für die Ausführung nicht *smile* - Die Benutzerdaten müssen klar zuerst versendet werden, bevor sie gelöscht werden......das ist noch ein kleines Problem ;) - Weisst du da noch weiter?
lg, axe
Im Ansatz gut, für die Ausführung nicht *smile* - Die Benutzerdaten müssen klar zuerst versendet werden, bevor sie gelöscht werden......das ist noch ein kleines Problem ;) - Weisst du da noch weiter?
lg, axe
Antwort 3 von rfb
versuchs mal mit einer zeitlichen Verzögerung (siehe: http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout)
Antwort 4 von Whachholger
Oder Du rufst mit dem Formular nur eine Funktion auf und nimmst das Absenden dann dort selbst in die Hand. Wenn man nacheinander
document.loginForm.submit();
document.loginForm.reset();
ausführt müßte es der Logik nach eigentlich gehen. Probiert hab ichs allerdings nicht.
document.loginForm.submit();
document.loginForm.reset();
ausführt müßte es der Logik nach eigentlich gehen. Probiert hab ichs allerdings nicht.
Antwort 5 von Whachholger
Damit das keine Endlosschleife wird, muß die Funktion vor dem Absenden noch die Action-URL ändern und danach wieder zurücksetzen. Oder man verwendet 2 Formulare. Eines zum Aufruf der Funktion und eines zum endgültigen Absenden. Dann müssen vorher noch die Feldinhalte vom ersten ins zweite Formular kopiert werden.
Antwort 6 von Whachholger
Und nochmal :-)
Man könnte es auch so machen, daß der User die Daten direkt in das Absendeformular eingibt, aber dann den Button des Funktionsaufrufsformulars anklickt.
Man könnte es auch so machen, daß der User die Daten direkt in das Absendeformular eingibt, aber dann den Button des Funktionsaufrufsformulars anklickt.
Antwort 7 von axe
Und so? Ist das richtig definiert? Wenn ja, dann geht es nicht *smile*
<FORM ACTION="http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387" METHOD="post" NAME="loginForm" target="webmail" onsubmit="window.open(´http://webmail-2.xxymil.ch/cgi-bin/nph-mr.cgi?R37841387´,´webmail´,´width=730,height=530,scrollbars,status´)"; onsubmit="setTimeout("document.loginForm.reset();", 3000)"; >
<FORM ACTION="http://webmail-2.xxymail.ch/cgi-bin/nph-mr.cgi?R37841387" METHOD="post" NAME="loginForm" target="webmail" onsubmit="window.open(´http://webmail-2.xxymil.ch/cgi-bin/nph-mr.cgi?R37841387´,´webmail´,´width=730,height=530,scrollbars,status´)"; onsubmit="setTimeout("document.loginForm.reset();", 3000)"; >
Antwort 8 von rfb
dein Formular wartet ja auch immer auf die Erlaubnis abzuschicken:
so sollte es klappen
also erst Befehl zum Löschen der Eingabe initiieren, dann mit return true die Erlaubnis zum Abschicken.
Die Anpassung an deinen Fenstercode musst du schon selbst vornehmen.
PS: Falle des SN, die ´ sollen einfache Anführungszeichen sein, die über der Raute rechts neben dem Ä auf der Tastatur (SN macht ein Apostroph daraus, damit funktionierts nicht).
so sollte es klappen
onsubmit="setTimeout(´document.loginForm.reset();´, 3000);return true;"
also erst Befehl zum Löschen der Eingabe initiieren, dann mit return true die Erlaubnis zum Abschicken.
Die Anpassung an deinen Fenstercode musst du schon selbst vornehmen.
PS: Falle des SN, die ´ sollen einfache Anführungszeichen sein, die über der Raute rechts neben dem Ä auf der Tastatur (SN macht ein Apostroph daraus, damit funktionierts nicht).
Antwort 9 von axe
Sag mal rfb, kann man dich auch eMailen? Dann würde ich dir gerne mal den ganzen Quelltext senden. Denn bei mir funktioniert das einfach nicht.
Gruss, axe (hautle.christoph(at)bluewin.ch)
Gruss, axe (hautle.christoph(at)bluewin.ch)
Antwort 10 von rfb
basierend auf dem Code des Beispiels in SelfHTML habe ich mal folgendes ausprobiert:
und siehe da, es funktioniert!
beachte beim Code-Kopieren meine Anmerkung zur SN-Falle in Antwort 8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Buttons zum Absenden ...</title>
</head>
<body>
<h1>Das hier können Sie absenden!</h1>
<p>...</p>
<form action="http://de.selfhtml.org/cgi-bin/comments.pl" name="loginForm" target="webmail" onsubmit="window.open(´http://de.selfhtml.org/cgi-bin/comments.pl´,´webmail´,´width=730,height=630´);setTimeout(´document.loginForm.reset();´, 3000);return true;">
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
<tr>
<td align="right">Vorname:</td>
<td><input name="Vorname" type="text" size="30" maxlength="30"></td>
</tr><tr>
<td align="right">Zuname:</td>
<td><input name="Zuname" type="text" size="30" maxlength="40"></td>
</tr><tr>
<td align="right" valign="top">Kommentar:</td>
<td><textarea name="Text" rows="10" cols="50"></textarea></td>
</tr><tr>
<td align="right">Formular:</td>
<td>
<input type="submit" value=" Absenden ">
<input type="reset" value=" Abbrechen">
</td>
</tr>
</table>
</form>
<p>...</p>
</body>
</html>
und siehe da, es funktioniert!
beachte beim Code-Kopieren meine Anmerkung zur SN-Falle in Antwort 8
Antwort 11 von axe
Ich bin einfach nicht darüf geschaffen - aber nun geht es endlich *smile* - Vielen Dank Allen, die geholfen haben :-)
Schönen Sonntag noch - axe
Schönen Sonntag noch - axe

