JQuery Selectize.js с загрузкой данных ajaxJquery

Программирование на jquery
Ответить
Anonymous
 JQuery Selectize.js с загрузкой данных ajax

Сообщение Anonymous »

Я пытаюсь загрузить данные для плагина jQuery Selectize.js через ajax, но не могу удалить параметры, загруженные предыдущими вызовами, из раскрывающегося элемента.
Я застрял в этом код, в котором я могу загружать данные через ajax и показывать их в раскрывающемся списке, но я хотел бы удалить их, когда раскрывающийся список закрыт (поскольку также удаляется введенный текст), и загрузить новые из другого вызова ajax (после ввода нового текста ), но команды ClearOptions(true)/refreshItems() ничего не удаляет. Я хотел бы удалить только элементы в раскрывающемся списке. Если какой-либо элемент выбран, он должен оставаться таковым.
РЕДАКТИРОВАТЬ:
Основываясь на комментариях ниже, я обновил здесь пример кода. Текущее состояние: элементы правильно загружаются в качестве опций для раскрывающегося списка, раскрывающийся список остается открытым при загрузке данных, а введенный текст не удаляется после размытия.
Единственная проблема, требующая решения (пока): что когда я набираю «что-то», данные загружаются правильно через ajax, тогда я выбираю любой вариант. Пока все в порядке. Но когда я набираю «другой», предыдущие параметры из раскрывающегося списка удаляются (это правильно), но также удаляется и выбранный вариант (не правильно). Я понимаю, почему это произошло (выбранные параметры удалены, поскольку удалены параметры из выпадающего меню), но понятия не имею, как это решить.
var selectize = $('#selectize').selectize({
sortField: 'text',
loadThrottle: 500,
onFocus: function() {
if (this.items[0] == '0') {
this.clear();
}
},
load: function(query, callback) {
if (!query.length || query.length < 2) return callback();

selectize[0].selectize.clearOptions();
selectize[0].selectize.renderCache = {};

var value = selectize[0].selectize.currentResults.query;
var ajax = [{'value': '31', 'text': 'aaa yyy'}, {'value': '32', 'text': 'aaa xxx'}, {'value': '33', 'text': 'aaa zzz'}]; // simulation of loading data via ajax
callback(ajax);

// without those two lines I was not able to open dropdown menu after loading new options, IDKW
selectize[0].selectize.blur();
selectize[0].selectize.focus();

// without this line I've lost typed text when loading new options to dropdown
setTimeout(function() {
selectize[0].selectize.setTextboxValue(value);
}, 100);
}
});


Подробнее здесь: https://stackoverflow.com/questions/792 ... ta-loading
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»