Почему не работает input file при загрузке через ajax

Проблема в следующем: Загружаю форму через AJAX, в форме есть поле input[type=file], но при нажатии на поле - не открывается диалоговое окно для выбора файла... При входе на форму на прямую - всё открывается.

В целом выяснил, если добавлять input[type=file] динамически через jQuery - он не работает.

$(".clkfile").append('<input name="image" type="file">');

Как добиться работоспособности, не теряя при этом функционал подгрузки формы через ajax?


Ответы (2 шт):

Автор решения: ioszhuk

Перепроверьте Ваш код. Сделал как Вы описали - все работает. Возможно Вы напутали с классами в js.

<form class="clkfile">

</form>

<button id="handler_btn" type="button">add file input</button>
$('#handler_btn').on('click', function() {

    $('.clkfile').append('<input name="image" type="file">');
  
});
→ Ссылка
Автор решения: Петр Ликров

Ошибка была не в jQuery и не в input'e, а копипасте чужого кода. Надо внимательнее смотреть наследование при определении click... Получалось так, что при click на input - выполнялось действие родительского элемента, у которого if(e.target == this){ e.preventDefault(); }

Спасибо всем кто подключился.

→ Ссылка