Hallo Dennis,
schau mal hier: http://www.riehle-web.com/script.txt
da steht ein komplettes Script, welches ich noch hatte.
Danke für den Tip.Es geht aber tatsächlich auch so, wie ich mir das vorgestellt hatte. Nach einigem rumprobieren bin ich mittlerweile selbst draufgekommen.
Der Trick ist, dass man das FILE-Feld gar nicht leer macht, sondern löscht und durch ein neues FILE-Feld ersetzt. Das geht mit einem recht kompakten Zweizeiler.
Also, mal zur Erläuterung, dies ist mein Formular:
<form name="testform" action="test.html" method="post" enctype="multipart/form-data">
<input type="text" name="url" value="" onBlur="if(this.value) DatLeer()"><br>
<input name="datei" type="file" onChange="document.testform.url.value=''"></form>
und dazu gehört dieses Script:
function DatLeer()
{
with (document.testform)
replaceChild(lastChild.cloneNode(false), lastChild);
}
Das Script wird aufgerufen, wenn das Eingabefeld für eine URL verlassen wird und das Feld mit einem Wert gefüllt ist (onChange führt bei einem TYPE=TEXT Feld unter IE zu einem Fehler, wenn Autovervollständigen aktiviert ist).
Es ersetzt einfach das Upload-Feld durch eine Kopie von sich selbst, wobei zwar alle Attribute, aber eben nicht der Inhalt übernommen werden.
Bei Änderung des Upload-Feldes wird der Inhalt des URL-Feldes einfach per VALUE='' gelöscht.
Das ganze kann man sich unter http://www.webmantz.de/formtest.html in Aktion anschauen.
Gruß, André