Вопрос

Я пытаюсь использовать функцию 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 в одном и том же поле.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top