Как программно изменить значение select2

У меня есть поле select2 в модале начальной загрузки, я хочу изменить значение окна select2, но оно не работает.

Я пробовал каждое решение в предыдущих постах и результатах, но ни одно из них не получило его.

Я использую select2 4.0.2, я тестировал:

$('#select_id').val('val').trigger('change.select2');

$('#select_id').val('val').trigger('change');

$('#select_id').val('val').change()

Работает один или два раза, затем перестает работать (случайно)


Работает нормально только когда меняю select2 обратно на 3.xx

Ответ 1

$('#select_id').val('val').trigger('change');

- это правильный путь, см. здесь

Ответ 2

$('#select_id').select2('val', selectedValue);

Ответ 3

Для Select2 с вызовом Ajax я боролся с большим количеством опций, но ни один не работал. Затем я пришел к следующему решению, которое работает как charm $ ("# select_id"). Html ($ (""). Val ('val'). Text ('text')). Trigger ("change");

Ответ 4

Если вы, как и я, добавили пользовательский обработчик для события select2: выбор правильного полного ответа на изменение значения и запуск пользовательского события select2:

$('#select_id').val('val').trigger('change').trigger({
     type: 'select2:event_name', // It worked for me with select2:selecting and select2:select
     params: {
       args: { // Only use 'args' if using select2:selecting, select2:select does not use it
         data: varWithEventData
       }
     }
});