Вы не можете установить значение ввода в большинстве браузеров, но вы можете создать новый элемент, скопировать атрибуты из старого элемента и заменить их.
Имеется такая форма, как:
<form>
<input id="fileInput" name="fileInput" type="file" />
</form>
Прямой путь DOM:
function clearFileInput(id)
{
var oldInput = document.getElementById(id);
var newInput = document.createElement("input");
newInput.type = "file";
newInput.id = oldInput.id;
newInput.name = oldInput.name;
newInput.className = oldInput.className;
newInput.style.cssText = oldInput.style.cssText;
// TODO: copy any other relevant attributes
oldInput.parentNode.replaceChild(newInput, oldInput);
}
clearFileInput("fileInput");
Простой способ DOM. Это может не работать в старых браузерах, которые не любят ввод файлов:
oldInput.parentNode.replaceChild(oldInput.cloneNode(), oldInput);
Способ jQuery:
$("#fileInput").replaceWith($("#fileInput").val('').clone(true));
// .val('') required for FF compatibility as per @nmit026
Сброс всей формы с помощью jQuery: https://stackoverflow.com/a/13351234/1091947