Я успешно использую следующее для обновления опций динамично:
$control.select2('destroy').empty().select2({data: [{id: 1, text: 'new text'}]});
В моем проекте я использую следующий код:
$('#attribute').select2();
$('#attribute').bind('change', function(){
var $options = $();
for (var i in data) {
$options = $options.add(
$('<option>').attr('value', data[i].id).html(data[i].text)
);
}
$('#value').html($options).trigger('change');
});
Попытка прокомментировать select2 часть. Остальная часть кода будет все еще работать.
Попытайтесь использовать триггерное свойство для этого:
$('select').select2().trigger('change');
Для v4 это - известная проблема, которая не будет решена в 4,0, но существует обходное решение. Проверьте https://github.com/select2/select2/issues/2830
Я фиксирую отсутствие библиотеки примера здесь:
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.js">