Объясните, почему после нажатия кнопки Отмена при открытии диалогового окна выбора файла это окно повторно уже не возможно вызвать.
Открытие диалогового окна у меня происходит по нажатию на элемент svg у которого id = nit-file-input визуально он выглядит как срепка.
<div class="form__add-file-wrapper">
<div class="form__add-file add-file">
<label class="label">
<svg class="icon icon-add-file" id="init-file-input">
<use xlink:href="/local/img/icons/sprite.svg#add-file"></use>
</svg>
</label>
<div class="form__files-wrapper" id="msg_block"></div>
</div>
</div>
После выбора файла я создаю динамически html-элемент file в методе createInputTypeFile Тег input file создается динамически так как иначе не будет срабатывать добавление файла, так же динамически можно создавать тег каждый раз при добавлении нового файла.
$(document).on('click', '#feedback #init-file-input', function (event) {
obj.inputField = obj.createInputTypeFile(inputFile);
});
Метод createInputTypeFile в нем создается html-элемент поле типа file и у этого поля происходит эмуляция события click
createInputTypeFile: function(inputFileNum) {
console.log('createInputTypeFile');
const feedback = document.querySelector('#feedback');
const input = document.querySelector('#file-input');
if(!feedback.contains(input)){
const input = document.createElement('input');
input.setAttribute('id', 'file-input');
input.setAttribute('type', 'file');
input.setAttribute('name', 'file[]');
input.style = 'display: none';
feedback.appendChild(input);
input.click(); // эмуляция события click
}
}
Не могу понять почему окно выбора файла не появляется повторно если я нажимаю кнопку Отмена, здесь причина на стороне JS или где-то глубже в Браузере?