Есть форма с полями типа select. К ней прикручен скрип select2 для удобства выбора значений.
Код формы на выходе примерно такой:
<div class="timetable-list">
<p class="timetable__items" style="display: flex; align-items: flex-start;">
<span style="display: block; margin-bottom: 10px;">
<label for="personal__0" style="display: inline-block; width: 130px;">Ведущие:</label>
<div class="select2-container select2-container-multi" id="s2id_personal__0" style="width: 343px;">
<ul class="select2-choices">
<li class="select2-search-choice">
<div>Анна</div>
<a href="#" class="select2-search-choice-close" tabindex="-1"></a>
</li>
<li class="select2-search-choice">
<div>Оксана</div>
<a href="#" class="select2-search-choice-close" tabindex="-1"></a>
</li>
<li class="select2-search-field">
<label for="s2id_autogen4" class="select2-offscreen">Ведущие:</label>
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" id="s2id_autogen4" placeholder="" style="width: 20px;">
</li>
</ul>
<div class="select2-drop select2-drop-multi select2-display-none">
<ul class="select2-results">
<li class="select2-no-results">No matches found</li>
</ul>
</div>
</div>
<select id="personal__0" multiple="" name="extra[timetable][personal][0][]" style="width: 343px;" tabindex="-1" class="select2-offscreen">
<option value="-1">Выбрать</option><option value="1094">Яна</option>
<option value="1093" selected="selected">Анна</option>
<option value="1092">Катя</option>
<option value="1091" selected="selected">Оксана</option>
<option value="1056">Маша</option>
</select>
</span>
<span class="dashicons dashicons-plus add-timetable-item" style="cursor: pointer;"></span>
<span class="dashicons dashicons-trash delete-timetable-item" style="cursor: pointer;"></span>
</p>
</div>
Клонирую форму так:
jQuery(document).ready(function() {
var timetable = jQuery('.timetable-list');
jQuery('.add-timetable-item', timetable).click(function() {
timetableItem = timetable.children('.timetable__items').last();
newItem = timetableItem.clone(true);
newItem.find('select').each(function() {
newInputId = jQuery(this).attr('id');
newName = jQuery(this).attr('name');
jQuery(this).attr({
id: newInputId.replace(/\d+$/, m => +m + 1),
name: newName.replace(/\d/, m => +m + 1)
});
jQuery(this).find('option:selected').each(function() {
jQuery(this).removeAttr('selected');
});
jQuery(this).siblings('label').attr('for', newInputId.replace(/\d+$/, m => +m + 1));
});
divID = newItem.find('div.select2-container.select2-container-multi').attr('id');
newItem.find('div.select2-container.select2-container-multi').attr('id', divID.replace(/\d+$/, m => +m + 1));
newItem.find('select.select2-offscreen').select2('val', '');
timetableItem.after(newItem);
});
});
Однако, выбранные значения сбрасываются не у склонированного поля, а у того, которое клонирую. Как исправить?