Я пытаюсь загрузить данные для плагина 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
JQuery Selectize.js с загрузкой данных ajax ⇐ Jquery
Программирование на jquery
-
Anonymous
1734264124
Anonymous
Я пытаюсь загрузить данные для плагина jQuery Selectize.js через ajax, но не могу удалить параметры, загруженные предыдущими вызовами, из раскрывающегося элемента.
Я застрял в этом код, в котором я могу загружать данные через ajax и показывать их в раскрывающемся списке, но я хотел бы удалить их, когда раскрывающийся список закрыт (поскольку также удаляется введенный текст), и загрузить новые из другого вызова ajax (после ввода нового текста ), но команды ClearOptions(true)/refreshItems() ничего не удаляет. Я хотел бы удалить только элементы в раскрывающемся списке. Если какой-либо элемент выбран, он должен оставаться таковым.
[b]РЕДАКТИРОВАТЬ:[/b]
Основываясь на комментариях ниже, я обновил здесь пример кода. Текущее состояние: элементы правильно загружаются в качестве опций для раскрывающегося списка, раскрывающийся список остается открытым при загрузке данных, а введенный текст не удаляется после размытия.
Единственная проблема, требующая решения (пока): что когда я набираю «что-то», данные загружаются правильно через 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);
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79261730/jquery-selectize-js-with-ajax-data-loading[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия