如何防止select2将用户输入作为标签建议之一

6

我在我的项目中使用了Select2插件,利用插件中提供的标签功能。该功能按照文档中建议的方式工作正常,但我卡在了一个点上。

我已经按照以下方式初始化了标签:

HTML

<div class="form-group">
       <label for="languages">Languages <span class="mandatory">*</span> :</label>
       <input type="text" required="" placeholder="Languages" name="languages" id="languages" class="form-control">
</div>

JS:

$('#languages').select2({
     tags: languagenames,
});

语言名称数据:

[{"id":"1","text":"Afrikaans"},{"id":"2","text":"Albanian"},{"id":"3","text":"Arabic",....}]

在输入框中输入字符时,我会在下拉菜单中得到建议,但我也会得到输入的字符作为其中一个建议(见附属屏幕截图)。例如,在尝试输入英语时,我输入“En”,并且它作为建议之一存在。我检查了数据集,但没有“En”的条目。我找不到任何特定配置来停止这个额外的条目。有什么建议可以防止这个额外的条目出现吗?

<input autocomplete="off" /> ? - Yuliam Chandra
3个回答

4

我之前并不知道这个插件,但它看起来非常棒。

尝试像这样做:

$('#languages').select2({
     tags: languagenames,
     createSearchChoice : function(term){
        return false;
    }
});

1
我知道这是一个晚回答。
通过遵循文档,您可以使用tags: true选项进行标签模式,因此将其设置为false。 看这个
$(".js-example-tokenizer").select2({
  tags: true,
  tokenSeparators: [',', ' ']
})

我仍然可以在多选选择框中输入文本...有没有办法完全禁用文本输入? - lewis4u

0
$('#languages').select2({
     tags: false
});

这对我在多选方面起作用,我正在使用select 4.0.9。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接