Почему не работает input file при загрузке через ajax
Проблема в следующем: Загружаю форму через AJAX, в форме есть поле input[type=file], но при нажатии на поле - не открывается диалоговое окно для выбора файла... При входе на форму на прямую - всё открывается.
В целом выяснил, если добавлять input[type=file] динамически через jQuery - он не работает.
$(".clkfile").append('<input name="image" type="file">');
Как добиться работоспособности, не теряя при этом функционал подгрузки формы через ajax?
Ответы (2 шт):
Перепроверьте Ваш код. Сделал как Вы описали - все работает. Возможно Вы напутали с классами в 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(); }
Спасибо всем кто подключился.