tl; dr : W przypadku nowoczesnych przeglądarek po prostu użyj
input.value = '';
Stara odpowiedź:
Co powiesz na:
input.type = "text";
input.type = "file";
Nadal muszę zrozumieć, dlaczego to nie działa z zestawem webkit .
W każdym razie działa to z IE9>, Firefox i Operą.
Sytuacja z webkitem polega na tym, że wydaje mi się, że nie mogę zmienić go z powrotem do pliku.
W przypadku IE8 sytuacja jest taka, że zgłasza wyjątek bezpieczeństwa.
Edycja:
W przypadku Webkit, Opera i Firefox działa to jednak:
input.value = '';
(sprawdź powyższą odpowiedź z tą propozycją)
Zobaczę, czy uda mi się znaleźć przyjemniejszy, bardziej przejrzysty sposób na zrobienie tej między przeglądarkami bez potrzeby GC.
Edit2:
try{
inputs[i].value = '';
if(inputs[i].value){
inputs[i].type = "text";
inputs[i].type = "file";
}
}catch(e){}
Działa z większością przeglądarek. Nie działa z IE <9, to wszystko.
Testowane na firefox 20, chrome 24, opera 12, IE7, IE8, IE9 i IE10.