2015-05-27 3 views
21

Я пробовал новый Select2 v4.0, который имеет много улучшений. Меня в основном интересует функция tags. Я хочу, чтобы иметь возможность искать теги через ajax и только сможет выбрать тег из показанных результатов и не сможет создавать новые теги. Функциональность похожа на StackOverflow - если у вас нет необходимой репутации, вы не можете создавать новые теги, но вы все равно можете пометить вопрос существующими тегами.Как отключить создание новых тегов с помощью select2 v4.0?

Вот jsfiddle с моим кодом, который взят из примеров. В этом примере вы можете создавать новые теги, которые я хочу ограничить. Пользователь должен иметь возможность выбирать теги только из списка, который извлекается из GitHub через ajax.

Кто-нибудь знает, как отключить эту функцию?

ответ

35

Это должно работать - в инициализации выбор2, попробуйте возвращение неопределенного из функции createTag следующим образом:

createTag: function(params) { 
       return undefined; 
      } 
+1

Извините за поздний ответ. Кажется, это работает отлично для меня. Спасибо, что поделились! :) – tftd

+0

@tftd вы можете обновить скрипку с помощью этого решения, так как я попробовал обновить скрипт, который вы отправили, но он не работает в этом. –

+6

По-видимому, это раньше называлось 'createSearchChoice()' в пред-4.0 (3.5.3) Select2. Они изменили многие имена функций, когда они переместились в 4.0. –

2

Вы можете отключить теги, удалив tags: true при инициализации Select2. Или, альтернативно, установка tags: false при инициализации Select2. Теги только активированы if the tags option is truthy, который находится, когда вы проходите мимо true.

+0

Я ищу следующий [визуальный эффект] (https://camo.githubusercontent.com/d700cc5a313d0dfb98450132b62e1da0fd727ef1/687474703a2f2f6165686c6b652e6769746875622e636f6d2f7461672d69742f5f7374617469632f73637265656e73686f742e706e67). Если я установил 'tags: false' (или просто опустил его), он вернется в поле выбора. В моем случае мне нужно, чтобы он больше походил на [tag-it] (http://aehlke.github.io/tag-it/), а не на поле выбора. – tftd

+0

Я не совсем уверен, что вы имеете в виду, и, к сожалению, без jsfiddle/jsbin, чтобы посмотреть (что у вас есть прямо сейчас, а не то, что вы хотите), трудно ответить на все, что было за вопросом в вашем названии. Я не уверен, что вы подразумеваете под словом «вернуться в поле выбора». Вы ищете опцию «multiple», случайно? –

+0

Я, вероятно, не объяснил это достаточно хорошо - извините. Я имел в виду, что если я удалю 'tags: false', он станет selectbox, например, [Загрузка удаленных данных] (https://select2.github.io/examples.html). Я обновил свой вопрос. Надеюсь, это имеет больше смысла? – tftd

15

Я боролся с этим, как хорошо, но получили это работает через несколько часов.

Я указал несколько разделителей токенов (потому что моим посетителям разрешено создавать теги в другом месте на веб-сайте). Оказалось, что сепараторы все еще применяются, даже если для конфигурации tags установлено значение false.

Решение: tags: false и НЕ добавьте значение для tokenSeperators. Держите multiple: true.