selectize.раскрывающийся список JS reload

У меня есть выпадающий список с id "selectCountry", заполненный ajax, и при успехе я просто привязываю Selectize.

$('#selectCountry').selectize({
    create: true,
    sortField: 'text' 
});

когда я перезапущу свой первоначальный раскрывающийся список ajax и попытаюсь перезагрузить/перезагрузить или обновить старое поле selectize auto complete при успехе, в старом списке не будет никаких изменений.

есть ли способ перезагрузить или обновить раскрывающийся список selectize? Я должен был попробовать "clearOptions()" и "refreshOptions()".

P. S, Я не хочу напрямую связывать selectize из "Аякса".

OK, теперь я добавляю рабочий пример для этой проблемы на jsfiddle

пожалуйста, помогите мне :( любое предложение было бы здорово для меня. Большое спасибо

3 ответов


кое-как, я нашел ответ и его работу здесь

просто добавьте эту строку кода и его работы.

$('#select-tools').selectize()[0].selectize.destroy();

Похоже, вы также открыли вопрос по проекту, что не является, ИМХО, хорошим использованием проблем проекта.

Я ответил Там, я повторю ответ здесь, если он может быть полезен другим людям.

Не следует повторно создавать компонент Selectize из исходного тега. Вы должны использовать его для обновления своих параметров, используя clearOptions () как вы догадались, а затем addOption () (несмотря на единственное число, он принимает массив). Я обновил ваш скрипка (+1 для создания одного), чтобы показать это:https://jsfiddle.net/m06c56y0/20/

соответствующая часть:

var selector;
$('#button-1').on('click', function () {
    selector = $('#select-tools').selectize({
        maxItems: null,
        valueField: 'id',
        labelField: 'title',
        searchField: 'title',
        options: [{
            id: 1,
            title: 'Spectrometer',
            url: 'http://en.wikipedia.org/wiki/Spectrometers'
        }, {
            id: 2,
            title: 'Star Chart',
            url: 'http://en.wikipedia.org/wiki/Star_chart'
        }],
        create: false
    }).data('selectize');
});

$('#button-2').on('click', function () {
    console.log(selector);
    selector.clearOptions();
    selector.addOption([{
            id: 1,
            title: 'Spectrometer',
            url: 'http://en.wikipedia.org/wiki/Spectrometers'
        }, {
            id: 3,
            title: 'Electrical Tape',
            url: 'http://en.wikipedia.org/wiki/Electrical_tape'
        }]);
});

вы также можете сделать это:

$('#whateverYouCalledIt').selectize()[0].selectize.clear();

для просто очистки того, что было выбрано. Он не очистит ваш список выбора.