Подтвердить что ты не робот

Использование функции 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, чтобы оставаться в соответствии с существующим кодом (требуется возможность выбора нескольких параметров), но просто нужно, чтобы пользователи могли вводить свой собственный вариант в дополнение к выбору из предыдущего списка.

4b9b3361

Ответ 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 в том же поле дважды