Можно ли добавить опцию в верхнюю часть select2, когда данные поступают из ajax? - PullRequest
0 голосов
/ 10 октября 2019

Мне нужно вставить в начало списка новую опцию в элементе управления select2.

Я пытался использовать

        var data = {
            id: -1,
            text: 'SISTEMA'
        };

        var newOption = new Option(data.text, data.id, false, false);
        $('#UsuarioId').append(newOption).trigger('change');

Но это не работает, когда данные поступают из Ajax. В этом случае поле со списком появляется с выбранным параметром, а когда список расширяется, этого параметра нет.

С уважением, Jaime

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Эта документация от select2 уже объясняет

https://select2.org/data-sources/ajax

0 голосов
/ 10 октября 2019

Создайте переменную и первоначально определите эту переменную как параметр, который вы хотите включить - например:

var trHTML;    
trHTML = '<option value=""></option>'

Затем выполните цикл по вашему набору результатов, добавляя каждый элемент обратно в эту переменную

$.each(x, function (i, item) {
      trHTML += '<option value=' + value_name +'>'+ display_name +'</option>';
});

Затем добавьте весь список к выбору и запустите Select2

$('#dropdown_name').append(trHTML);
$('#dropdown_name').select2({
     placeholder: "foobar",
     allowClear: true
});
...