Archivlink: javarea.de Forum > JavaScript > Problem mit Zurücksetzen von Formularfeld type=file
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Problem mit Zurücksetzen von Formularfeld type=file

Pages: [1]

geschrieben von zippy am 11.02.2006 - 17:46
Folgendes Problem:

-Ein Formular versendet sich an eine andere Seite, die im gleichen Frameset, wie die Seite mit dem Formular steht.

-Das Formular leert sich also nicht selbstständig. Das hab ich mit nem kurzen script gelöst.

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
function ClearInput()
{
document.form1.submit();
document.form1.loeschsend.value=0;
document.form1.loesch.value=0;
document.form1.send.value=0;
document.form1.sendletztes.value=0;
document.form1.datei.value="";<---- Dies ist das Problem: Ein File-Input 
document.form1.newtext.value="";
}


Alles geht sehr gut. Kein Problem, AAABER das File-Inputfeld übernimmt aus Sicherheitsgründen (Browsermäßig) keine Werte. Das hab ich mittlerweile rausgefunden. Man könnte es sonst "verstecken" und beliebige Dateien (zb.etc/.htpasswd) von ahnungslosen Seitenbesuchern "stehlen".

Ich will aber keine Wert vorgeben, sondern einen Wert rauslöschen, weil sonst beim nächsten Versenden des Formulars auch die eingetragene Datei noch mal geuploadet wird.

Bisherige (Not)Lösung:
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 

<?
if( isset ($reloadindex) )
{
echo 
"<script type='text/javascript'>parent.location.href = 'index.php';</script>";
}
?>


Wenn die "empfangende" Seite einen Bildupload registriert, erzwingt sie ein Nachladen des gesamten Framesets, womit auch das Formular neu (und leer) geladen wird. Das will ich aber vermeiden.

Erstens spielen Mediendateien im "Formularframe", die dann stets neu starten, zweitens blinkt dann das ganze Fenster, weil ja erst das "Empfangsframe" neu geladen wird, und danach nochmal das gesamte Fenster.

Eine andere Lösungsmöglichkeit, nämlich, das gesamte Formular AUCH in ein eigenes frame zu stellen, will ich ebenfalls vermeiden. Wird mir aber nichts anderes übrig bleiben, wenn sich kein Weg findet, den Value des input/file Feldes zurück zu setzen.

Bitte, bitte, bitte ...


NACHTRAG (falls sich tatsächlich jemand meines diesbezüglichen Problems erbarmt):

Natürlich gibts ne Grund, WARUM ich vor der Lösung zurückschrecke, das Formular wiederum in ein eigenes Frame zu stellen und komplett nachladen zu lassen. Das würde zwar DERZEIT das Problem lösen, wenn ich aber später mal nen aufwändigen WYSIWYG-Editor statt einer textarea zur Texteingabe nutzen wollen sollte, müsste der sich umständlich komplett neu aufbauen, statt einfach den Inhalt auf leer zu setzen.

Das Projekt selbst ist ein internes Communication-Board, etwa zwischen Forum und Chat, eine Spielerei also, ...

geschrieben von Micha am 12.02.2006 - 13:02
Hi

habs nciht probiert aber Dir hilft vll:
HTML-Quelltext
1: 
document.form1.reset()


weiter...

Micha

geschrieben von zippy am 13.02.2006 - 21:38
Das klingt SEHR vielversprechend! Hab zwar mittlerweile das Problem umgangen, statt gelöst, werde es aber bei nächster Gelegenheit ausprobieren und im Erfolsfall hier reinschreiben.


NACHTRAG: Natürlich geht es so, wie Du sagst.. Du wirst nicht glauben, wie viele Foren ich nach genau dieser Sache durchgeackert habe....

Manchmal steht man ja sowas von auf der Leitung...


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.