Динамическое создание input

242
26 июля 2017, 20:31

Есть функция:

$("input[name='file_img[]']").change(function () {
        var max = 5;
        var total = $("input[name='file_img[]']").length;
        if (total < max) {
            total = total + 1;
            $("#gallery").append('<input type="file" class="form-control" name="file_img[]">');
        }
    });

по идеи как видно из кода она должна срабатывать 4 раза т.е. чтобы было 5 input`ов, но она срабатывает всего один раз. Помогите. Она не должна быть цыклом. Она должна срабатывать только при нажатии.

Answer 1

В js есть такое понятие как "делегирование событий". На динамически добавляемые элементы нельзя напрямую повесить обработчик. Но можно повесить на родителя:

$('body').on('change', 'input', function() { 
    if($('input').size() < 5) { 
       $('body').append('<input type="file" /><br />'); 
    } 
});
<input type="file" /><br /> 
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>

READ ALSO
Смена значения value в submit при адаптиве css

Смена значения value в submit при адаптиве css

Доброго времени! Делаю адаптивное меню есть там одна кнопка типа submit вот:

206
пишу тему на wordpress, возникли сложности с sidebar

пишу тему на wordpress, возникли сложности с sidebar

Пишу тему на wordpress, помогите, пожалуйста, разобраться почему у меня НЕ отображается на сайте sidebar, хотя в админке он появляется, я его заполняю,...

262
Как сделать footer посередине?

Как сделать footer посередине?

Добавил в Footer класс navbar-fixed-bottom и Fotter прижался, но растянулся на всюКак сделать его таким же как и остальной контент по центру (выделил красным)

237
Проблемы с alert в плагине jquery Validation

Проблемы с alert в плагине jquery Validation

Ошибка заключается в том, что если неправильное поле оно выводит алерт только после дух нажатий, а если еще раз нажать, то выводит по несколько...

217