Wie kann man 1 von 2 Formularfeldern nach senden löschen

El-Ninjo

Grünschnabel
Hallo zusammen,
ich bin echter Laie in Javascript und benötige eure Hilfe.

Mein Problem:

Ich habe ein Formular (für Shoutbox), indem 2 Felder sind.
1. Nickname
2. Nachricht

Nach absenden soll der Inhalt des Nachrichtenfeldes geleert/gelöscht werden.
Aber nur dieser. Der Nickname soll erhalten bleiben.
Ich habe hier mal das Forum durchsucht, aber nur einen Beitrag gefunden
indem gleich alle Eingabe Felder gelöscht werden.
Sicherlich ist es auch möglich nur das eine Eingabefelkd zu löschen.

Hier mal mein Formular:
Code:
<form name="sf" method="post" action="action.php" target="hauptframe"> 
  Nickname: <input class="eingabe" title="Nick" size="20" name="nick" value=""><br>
  Nachricht: <input type="text" name="shout" size="20"><br>
  <input type="submit" VALUE="Senden">
</form>

Wer weiß wie ich mein Problem lösen kann?

MfG
El-Ninjo
 
Du kannst mich schlagen wenn Du willst,
aber scheinbar bin zu zu blond dafür.

Egal wie ich es auch einbau, ich bekomm immer einen Scriptfehler.

So kann das ja wohl nicht richtig sein, oder?
Code:
<form onsubmit="setTimeout('document.forms['sf'].elements['shout'].value = \'\'',1000)" name="sf" onsubmit="setTimeout('document.forms['sf'].elements['shout'].value = \'\'',1000)" method="post" action="action.php" target="hauptframe" ;> 
  Nickname: <input class="eingabe" title="Nick" size="20" name="nick" value=""><br>
  Nachricht: <input type="text" name="shout" size="20"><br>
  <input type="submit" VALUE="Senden">

Poste mir doch mal bitte den gesamten Code (inkl. den von mir).

Danke!

MfG
El-Ninjo
 
Hi,

1. Warum hast Du das onsubmit-Ereignis zweimal in dem Formular definiert?

2. Was macht das Semikolon ";" am Ende des form-Tags?

3. Wird das form-Tag auch irgendwo geschlossen?

4. müssen m.E. die Single-Quotes um die Elementnamen ('sf' und 'shout') auch escaped (mit vorangestelltem \) werden.

5. Ich würde das ganze in eine Funktion auslagern (ist übersichtlicher):
HTML:
<script type="text/javascript">
function delShout() {
    document.forms["sf"].elements["shout"].value = "";
}
</script>
<body>
<form name="sf" onsubmit="setTimeout('delShout()', 1000)" method="post" action="action.php" target="hauptframe"> 
  Nickname: <input class="eingabe" title="Nick" size="20" name="nick" value="">
  Nachricht: <input type="text" name="shout" size="20">
  <input type="submit" value="Senden">
</form>
</body>

Gruß
.
 
Zuletzt bearbeitet:
@Datic: leider nicht wie gewünscht.

Danke an alle, es hat sich erledigt.

Hab genau das gefunden was ich gesucht hatte.
Und zwar dies:
Code:
<table border=0 width=100%>
<tr>
<td align="center">
<form  name="chatform" method="post" action="action.php" target="_blank" onSubmit="return resetinput(chatform)">
<input class="eingabe" maxLength="200" title="shout" size="50" name="shout">
<input type="hidden" name="nick" value="test">
<input class="send" type="submit" value="Senden" name="B1">
<input class="send" type="reset" value="Zurücksetzen" name="B2">
</form>
				
<SCRIPT LANGUAGE=JavaScript>
function resetinput(chatform) {
chatform.submit();
window.setTimeout("chatform.reset()",500);
chatform.shout.value="";  chatform.shout.focus();
chatform.shout.select();
return (false);
}
</SCRIPT>
				
</td>
</tr>


MfG
El-Ninjo
 
Bei Datic fehlten lediglich die Klammern nach dem Funktionsnamen, dann hätte es auch funktioniert ;)
Code:
onsubmit="setTimeout('delShout()', 1000)"
 
Jetzt ne ganz dumme Frage: Ich zweifele nämlich mittlerweile an meinem Ansatz. Nach dem Submit wird doch die Seite, die unter action="..." angegeben ist aufgerufen - wird dann überhaupt noch die Funktion delShout() aufgerufen? Ich glaube doch nicht...

Man müsste an die URL, die unter action steht was anhängen. Dann ein Javascript schreiben, das schaut ob was angehängt ist und in dem Fall den Text aus dem input-Feld löscht... Das könnte natürlich php genau so gut.

Bin grad leicht verwirrt, wie man sieht - con-f-used, wenn man so will ^^.
 
@Sven: Ups :-( :-)

@con-f-use: In dem Formular ist als Target ein Frame ("hauptframe") angegeben. Ich bin davon ausgegangen, dass es sich nicht um den Frame handelt, in dem das Formular zu finden ist - ansonsten hättest Du natürlich recht.

Gruß
.
 

Neue Beiträge

Zurück