Использование функции Select2 createSearchChoice
Я пытаюсь использовать функцию 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'
Я бы предпочел использовать элемент select, чтобы оставаться в соответствии с существующим кодом (требуется возможность выбора нескольких параметров), но просто нужно, чтобы пользователи могли вводить свой собственный вариант в дополнение к выбору из предыдущего списка.
Ответы
Ответ 1
О, Боже, как отменить эту награду. Я впал в панику и из-за паники, я был в состоянии ответить на то, что мы оба искали:
Вы не можете использовать 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'}]};
Это решило мою проблему, поэтому я надеюсь, что она решит вашу проблему. Я думаю, что мы должны подробнее прочитать documentation.
Ответ 2
У меня была эта проблема, и это вызвано вызовом select2 в том же поле дважды