Есть функция:
$("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`ов, но она срабатывает всего один раз. Помогите. Она не должна быть цыклом. Она должна срабатывать только при нажатии.
В 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>
Продвижение своими сайтами как стратегия роста и независимости