Как я уже упоминал в комментариях, я чувствую, что вам нужен родитель для каждого дня недели, поэтому я добавил time-interval-parent
в разметку. Вам также необходимо переиндексировать массивы элементов name
каждый раз, когда строка добавляется или удаляется, что требует добавления уникального класса для входных данных и выбора, чтобы их можно было найти в DOM. Вот скрипка , которую я собрал.
Эта функция берет идентификатор выбора (день недели) и использует его для атрибутов имени. Затем он изменяет атрибуты и добавляет индекс.
function setIndex(elements) {
elements.each(function(index, element) {
var day = $(element).closest(".row").find(".day").attr("id");
$(element).find("select.from_hours").attr("name", "from_hours[" + day + "][" + index + "]");
$(element).find("select.to_hours").attr("name", "to_hours[" + day + "][" + index + "]");
});
}
Кнопка удаления изначально скрыта. Я добавил функциональность в вашу функцию clone
, чтобы показать это. Затем в конце он передает все элементы в setIndex
и запускает его.
В функции remove
он снова запускает setIndex
после удаления элемента, хотя вам не нужно делать это если он всегда удаляет последний элемент, потому что индексы не изменятся. Он также считает элементы и, если есть только один, он скрывает кнопку удаления. Надеюсь, это приблизит вас и покажет различные аспекты, необходимые для этого.