Ваш скрипт немного усложнен, но, похоже, работает (не так ли?). Проверьте упрощенную версию ниже:
$(document).ready(function(){
$("button").click(function(){
var formularz = $(".formularz");
var kopiuj = formularz.first().clone();
var liczba = formularz.length;
kopiuj.find('.pozycja[name]').each(function(){
$(this).attr('name', this.name + '[' + liczba + ']');
});
formularz.last().after(kopiuj);
});
});
Попробуйте рабочую демонстрацию: https://jsfiddle.net/tvcsubaf/
Обратите внимание, что отправка данных формы на ваш бэкэнд таким образом. Лучше создать массив из клонированных входных значений (ie. indeks[]
) или назвать их по схеме: indeks-1
, indeks-2
, et c.
Если вы решите Чтобы добавить [0]
к базовым name
атрибутам и затем увеличить это число в каждом следующем наборе полей, вы можете использовать следующий скрипт:
$(document).ready(function(){
$("button").click(function(){
var last = $(".formularz:last");
last.clone().insertAfter(last).find('.pozycja[name]').each(function(){
$(this).attr('name', this.name.replace(/(\d+)/, function(){
return arguments[1]*1+1;
}));
});
});
});
Рабочая демонстрация: https://jsfiddle.net/9chwkx82/