#javascript #jquery-select2
#javascript #jquery-select2
Вопрос:
Я прочитал документацию select2, и, похоже, у нее нет способа обновить параметры, не закрывая выбор.
Текущий способ сделать это (работает, но сбрасывает поисковый запрос):
$('#charity-list').select2('close');
$('#charity-list').select2('open');
Полный код:
function fetchCharityListForSearchTerm(searchTerm) {
console.log('search term ', searchTerm);
axios({
method: 'post',
url: '/api/charities/search',
data: {
search_term: searchTerm
}
})
.then(function (response) {
var charitySelect = document.getElementById('charity-list');
var charities = response.data.data;
charitySelect.options.length = 0;
charities.forEach((entry) => {
var newOption = new Option(entry.name, entry.charity_id, false, false);
$('#charity-list').append(newOption).trigger('change');
});
$('#charity-list').select2('close');
$('#charity-list').select2('open');
});
}
Комментарии:
1. Вероятно, для этого вам следует использовать опцию выборки данных Ajax в select2 select2.org/data-sources/ajax
2. @Ashu Я так и сделал, и все результаты привели к выделению серым цветом параметров, которые я не смог выбрать, без какой-либо документации со страницы select2 о том, почему.
Ответ №1:
вызов, когда пришел ajax после успешной функции ajax
> $('#charity-list').val(null).trigger('change.select2');
Комментарии:
1. Да, я пробовал это, это не сработало. Кажется, это работает, если вы щелкаете из текстового поля, а затем возвращаетесь обратно, но это не приводит к автоматическому обновлению параметров по мере их добавления в
<select>
тег.