У меня есть модал, который имеет два «поведения», одно для создания новой записи и другое для редактирования существующей записи, в зависимости от того, какая кнопка нажата (новая / редактировать).
Когда вы нажимаете «Изменить», данные записи (таблица пользователей) загружаются «вместе» с дочерними записями (таблица разрешений).
Во время модальной загрузки инициализируется select2:
let $select2user = $(".select2user");
$select2user.select2({
ajax: {
url: 'getUsersWithPermissions.php',
type: "GET",
dataType: 'json',
data: function (params) {
return {
search: params.term,
page: params.page || 1
};
},
processResults: function (data) {
data.page = data.page || 1;
return {
results: data.items.map(function (item) {
return {
id: item.id,
text: item.name
};
})
}
},
cache: true,
delay: 250
},
multiple: true
});
Все работает нормально, кроме тех случаев, когда я нажимаю "Редактировать запись".
Форма ввода (модальная) правильно заполнена регистрационными данными, однако я не могу предварительно выбрать несколько опций из дочерних записей (таблица разрешений).
Я пытался использовать 'append', но в итоге получалось дублировать опции.
$.each( value, function( permissions, permission ) {
console.log(permission['name']); // ok
let newOption = new Option(permission['name'], permission['id'], false, true);
$select2user.append(newOption);
});
$select2user.trigger('change');