Имеется форма для загрузки файла на сервер в которой множество полей
<form method="post" action="" id="file-rorm"> ...
<input id="documentscan" type="file" name="documentscan" accept="application/pdf"/> ... </form>
Если пользователь выбрал файл у себя на компьютере - с помощью JS проверяется его тип и размер
document.getElementById("documentscan").addEventListener("change", checkFile);
function checkFile() {
var file = document.getElementById("documentscan").files[0];
if (file.type !== "application/pdf") {
alert("Вы пытаетесь загрузить недопустимый файл");
}
else if (file.size > 5212880) {
alert("Допустимый размер файла до 5МБ");
}}
Если выбранный файл не валидный пользователю показывается соответствующие уведомления, но элемент <input id="documentscan" type="file" name="documentscan" accept="application/pdf"/> так и остается с выбраним файлом.
Как сделать reset конкретного input в форме чтоб не ресетить всю форму?
value в пустую строку или null. В старых браузерах этот вариант вполне может не сработать.document.getElementById("clear").addEventListener("click", function() {
document.getElementById("file").value = "";
});
<form>
<input value="Saved value" />
<input id="file" type="file" />
<input id="clear" type="button" value="Clear" />
</form>
input и заменить им существующий. Однако в таком случае будут потеряны все обработчики событий, которые были добавлены на старый input.input в "искусственную" форму, после чего сделать reset этой формы и вернуть input на место:document.getElementById("clear").addEventListener("click", function() {
var form = document.createElement("form");
var file = document.getElementById("file");
var fileParent = file.parentNode;
var fileNextSibling = file.nextSibling;
form.appendChild(file);
form.reset();
fileParent.insertBefore(file, fileNextSibling);
});
<form>
<input value="Saved value" />
<input id="file" type="file" />
<input id="clear" type="button" value="Clear" />
</form>
На базе этого ответа.
Так попробуйте
file.value = '';
Если других полей в форме не много (не в вышеописанном случае), то можно:
document.getElementById("file-rorm").reset(); Продвижение своими сайтами как стратегия роста и независимости