Использование функции createSearchChoice Select2
-
12-12-2019 - |
Вопрос
Я пытаюсь использовать функцию createSearchChoice, чтобы позволить пользователям вводить свой собственный выбор, когда списка по умолчанию недостаточно.Когда я пытаюсь использовать эту функцию на <select>
элемент, я получаю следующую ошибку:
Error: Error: Option 'createSearchChoice' is not allowed for Select2 when attached to a <select> element.
Я попробовал использовать <input type='hidden'>
вместо этого элемент, но теперь появляется следующая ошибка:
Error: uncaught exception: query function not defined for Select2 'MyInputName'
Я бы предпочел использовать элемент выбора, чтобы соответствовать существующему коду (нужна возможность выбора нескольких вариантов), но мне просто нужна возможность для пользователей вводить свой собственный вариант в дополнение к выбору из предыдущего списка.
Решение
О Боже, как мне отменить эту награду?Я запаниковал и благодаря панике смог ответить на то, что мы оба искали:
Вы не можете использовать createSearchChoice
на select
.Поэтому вам придется использовать input
вместо.
<input type="hidden" id="category">
Исправление заключается в использовании query
параметр:
$("#category").select2({query:function(query){
var data = {results: []};
data.results.push({text: query.term});
query.callback(data);
}});
Это добавляет текущий термин к опциям, если его там нет.Вы можете заполнить results
объект так:
var data = {results: [{text:'math'},{text:'science'}]};
Это решило мою проблему, поэтому я надеюсь, что это решило и вашу.Я думаю, нам следует больше читать о документация.
Другие советы
У меня была эта проблема, и это было связано с двойным вызовом select2 в одном и том же поле.