Я хочу иметь раскрывающийся список с набором значений, но также позволять пользователю «выбирать» новое значение, не указанное там.
Я вижу, что select2 поддерживает это, если вы используете его в tags
режиме, но есть ли способ сделать это без использования тегов?
jquery-select2
Джон Джон
источник
источник
Ответы:
Для версии 4+ проверить этот ответ ниже, Кевин Браун
В Select2 3.5.2 и ниже вы можете использовать что-то вроде:
(взято из ответа в списке рассылки select2, но сейчас не могу найти ссылку)
источник
selectOnBlur: true
сделает работу смотрите: stackoverflow.com/questions/25616520/...tags: []
вместе с нимcreateSearchChoice
.Отличный ответ предоставляется @fmpwizard работ по выбор2 3.5.2 и ниже, но это не будет работать в 4.0.0 .
С самого начала (но, возможно, не так рано), Select2 поддерживал «тегирование»: когда пользователи могут добавлять свои собственные значения, если вы им разрешите. Это можно включить с помощью этой
tags
опции, и вы можете поиграть с примером в документации .По умолчанию это создаст вариант с тем же текстом, что и введенный поисковый запрос. Вы можете изменить используемый объект, если хотите пометить его особым образом, или создать объект удаленно после того, как он будет выбран.
Помимо того, что он служит легко заметным флажком на объекте, проходящем через
select2:select
событие, дополнительное свойство также позволяет вам визуализировать параметр несколько иначе в результате. Итак, если вы хотите визуально обозначить тот факт, что это новая опция, поставив рядом с ней « (новый) », вы можете сделать что-то вроде этого.источник
Просто ради сохранения кода я публикую код @rrauenza Fiddle из его комментария .
HTML
JQuery
источник
Поскольку многие из этих ответов не работают в 4.0+, если вы используете ajax, вы можете попросить сервер добавить новое значение в качестве опции. Итак, это будет работать так:
[{"text":" my NEW option)","id":"0"}]
источник
Думаю, теперь есть лучшее решение
просто установите теги в значение true в параметрах выбора?
с https://select2.org/tagging
источник
Улучшение ответа @fmpwizard:
источник
Я только что наткнулся на это от Кевина Брауна. https://stackoverflow.com/a/30019966/112680
Все, что тебе нужно сделать для
v4.0.6
это использоватьtags: true
параметр.источник
В большинстве случаев нам нужно сравнивать значения с нечувствительным регистром. И этот код вернет false, что приведет к созданию повторяющихся записей в базе данных. Более того, String.prototype.localeCompare () не поддерживается браузером Safary, и этот код не будет работать в этом браузере;
лучше заменить на
источник
Спасибо за помощь, ребята, я использовал приведенный ниже код в Codeigniter II. Я использую версию: 3.5.2 select2.
источник