tl; dr : Für moderne Browser verwenden Sie einfach
input.value = '';
Alte Antwort:
Wie wäre es mit:
input.type = "text";
input.type = "file";
Ich muss noch verstehen, warum dies mit Webkit nicht funktioniert .
Auf jeden Fall funktioniert dies mit IE9>, Firefox und Opera.
Die Situation mit dem Webkit ist, dass ich es anscheinend nicht wieder in eine Datei ändern kann.
Bei IE8 wird eine Sicherheitsausnahme ausgelöst.
Bearbeiten:
Für Webkit, Opera und Firefox funktioniert dies jedoch:
input.value = '';
(Überprüfen Sie die obige Antwort mit diesem Vorschlag)
Ich werde sehen, ob ich einen saubereren Weg finden kann, diesen Cross-Browser ohne die Notwendigkeit des GC durchzuführen.
Edit2:
try{
inputs[i].value = '';
if(inputs[i].value){
inputs[i].type = "text";
inputs[i].type = "file";
}
}catch(e){}
Funktioniert mit den meisten Browsern. Funktioniert nicht mit IE <9, das ist alles.
Getestet auf Firefox 20, Chrome 24, Oper 12, IE7, IE8, IE9 und IE10.