Ответ 1
Просто снимите значение элемента ввода файла:
document.getElementById('remove').addEventListener('click', function () {
document.getElementById('fileInput').value = ''
});
Здесь демонстрация
Я использую это, чтобы позволить пользователю выбирать и выгружать файл:
<input id="fileInput" type="file" ng-file-select="onFileSelect($files)">
Это правильно показывает:
Когда пользователь нажимает кнопку "Загрузить", я загружаю файл.
Когда пользователь нажимает кнопку "Удалить", как я могу удалить имя файла?
Просто снимите значение элемента ввода файла:
document.getElementById('remove').addEventListener('click', function () {
document.getElementById('fileInput').value = ''
});
Здесь демонстрация
Это должно быть больше angular способом, подобным этому, с помощью angular.element(element)
:
angular.element(document.getElementById('remove')).on('click', function(){
angular.element(document.getElementById('fileInput')).val('');
});
angular.element(element);
где angular.element()
создает объект jQuery, а этот (element)
в фигурных скобках - это строка HTML или DOMElement, которая будет завернута в jQuery.
Googling приведет меня сюда, поэтому, чтобы помочь другим, вы также можете сделать это, используя прямой jQuery:
$("#clear").on("click", function() {
$("#fileInput").val("");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="fileInput" />
<button id="clear">Clear</button>