В большинстве современных версий браузеров убрана возможность вручную редактировать поля для загрузки файлов на сервер. А это иногда бывает нужно, например, если вы ошибочно добавили не тот файл. Решений этой проблемы масса, но все они мне не подошли (использование jQuery; очистка кнопкой reset, которая удаляет все данные из формы и тому подобное).
Нужное мне решение было найдено здесь. В общем случае можно очищать любые поля формы.
<script lang="javascript" type="text/javascript">
function clearFileUpload(id) {
// Получаем элемент по id
fileField = document.getElementById(id);
// Получаем родительский элемент
parentNod = fileField.parentNode;
// Создаём новый элемент
tmpForm = document.createElement("form");
parentNod.replaceChild(tmpForm,fileField);
tmpForm.appendChild(fileField);
tmpForm.reset();
parentNod.replaceChild(fileField,tmpForm);
}
</script>
[…]
<!-- Эта кнопка очищает два поля с указанными id -->
<input onclick="clearFileUpload('field1_id'); clearFileUpload('field2_id');" value="X" type="button">
[…]
Проверено в Chrome 30 и старой версии Opera 12.16