@inviziblll

Из за чего после нажатия кнопки Отмена окна выбора файла это окно повторно уже не возможно вызвать?

Объясните, почему после нажатия кнопки Отмена при открытии диалогового окна выбора файла это окно повторно уже не возможно вызвать.
5f7c1d7ec0953336360868.jpeg

Открытие диалогового окна у меня происходит по нажатию на элемент svg у которого id = nit-file-input визуально он выглядит как срепка.
5f7c1e3dbba7c753513622.jpeg

<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 или где-то глубже в Браузере?
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
Benzin102
@Benzin102
Shitcoder
Мешанина джиКвери и джиэса.
Ты инпут не удаляешь после отмены, он присутствует в форме и тут
if(!feedback.contains(input)){
не проходит проверка и инпут не кликается
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы