如何禁用select2 v4.0创建新标签?

tft*_*ftd 22 jquery jquery-select2-4

我一直在试用新的Select2 v4.0,它有很多改进.我主要对这个tags功能感兴趣.我希望能够通过ajax搜索标签,只能从显示的结果中选择一个标签,而不能创建新的标签.该功能类似于StackOverflow - 如果您没有必要的声誉,则无法创建新标签,但仍可以使用现有标签标记问题.

这是我的代码的jsfiddle,它取自示例.在该示例中,您可以创建我想要限制的新标记.用户应该只能从通过ajax从GitHub检索的列表中选择标签.

有人知道如何禁用此功能吗?

小智 37

这应该工作 - 在select2的初始化中,尝试从createTag函数返回undefined,如下所示:

createTag: function(params) {
                return undefined;
           }
Run Code Online (Sandbox Code Playgroud)

  • 显然,这在以前的4.0(3.5.3)Select2中被称为`createSearchChoice()`.当他们移动到4.0时,他们更改了许多函数名称. (8认同)

Rob*_*Rob 19

我也一直在努力解决这个问题,但几个小时后就开始工作了.

我已经指定了一些令牌分隔符(因为我的访问者可以在网站的不同位置创建标记).即使tags配置设置为,仍会应用分隔符false.

解决方案:tags: false并且不要为其添加值tokenSeperators.保持multiple: true.


Kev*_*own 7

您可以tags: true在初始化 Select2 时通过删除来禁用标签。或者,tags: false在初始化 Select2 时进行设置。标签仅tags选项为真时才启用,即在您传入时true

  • 我认为他是说他希望用户必须选择一个现有的标签值,而不能在那里输入自己的自定义新标签值。我自己也追求同样的功能。例如,Stackoverflow 不会让得分低的用户创建新标签 (2认同)