tl; dr : Pour les navigateurs modernes, utilisez simplement
input.value = '';
Ancienne réponse:
Que diriez-vous:
input.type = "text";
input.type = "file";
Je dois encore comprendre pourquoi cela ne fonctionne pas avec Webkit .
Quoi qu'il en soit, cela fonctionne avec IE9>, Firefox et Opera.
La situation avec Webkit est que je semble ne pas pouvoir le remettre en fichier.
Avec IE8, la situation est qu'il lève une exception de sécurité.
Edit:
Pour Webkit, Opera et Firefox, cela fonctionne, cependant:
input.value = '';
(vérifiez la réponse ci-dessus avec cette proposition)
Je vais voir si je peux trouver une manière plus propre de faire ce cross-browser sans avoir besoin du GC.
Edit2:
try{
inputs[i].value = '';
if(inputs[i].value){
inputs[i].type = "text";
inputs[i].type = "file";
}
}catch(e){}
Fonctionne avec la plupart des navigateurs. Ne fonctionne pas avec IE <9, c'est tout.
Testé sur Firefox 20, Chrome 24, Opera 12, IE7, IE8, IE9 et IE10.