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

时间:2015-05-27 00:45:50

标签: jquery jquery-select2-4

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

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

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

5 个答案:

答案 0 :(得分:37)

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

createTag: function(params) {
                return undefined;
           }

答案 1 :(得分:19)

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

我指定了一些令牌分隔符(因为我的访问者可以在网站的不同位置创建标记)。即使$(document).ready(function() { $('#more').click(function() { var get_last_post_display = $('.unique-class:last').attr('id'); $('#more').html('<img src="ajax-loader.gif"'); $.post('more_prj.php', 'last_id_post='+get_last_post_display, function(html) { if(html) { $('#main-div').append(html); $('#more').text('Load More Post'); //add text "Load More Post" to button again } else { $('#more').text('No more Post to load'); // when last record add text "No more posts to load" to button. } }, 'json'); }); }); 配置设置为tags,仍会应用分隔符。

解决方案:false并且不要为tags: false添加值。保留tokenSeperators

答案 2 :(得分:4)

您可以在初始化Select2时删除tags: true来禁用标记。或者,在初始化Select2时设置tags: false。标签仅在true传入时才会启用if the tags option is truthy

答案 3 :(得分:0)

我不确定是否应该在此处添加以下内容,但是当我搜索同一问题时,google指出了我这个问题。但是,我使用的是3.x较旧的版本,这是在3.x版本中实现相同方案的方法。

  

在版本3.5上测试

pip install python-dateutil

答案 4 :(得分:0)

标签:假,

$("#DropDownId").select2({
       minimumInputLength: 3,
       maximumSelectionLength: 10,
       tags: [],
       **tags:false,**
    ajax: {
        url: "@Url.Action("ActionName", "ControllerName")",
        type: "get",
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                Title: params.term // search term
            };
        },
        processResults: function (response) {
            return {
                results: $.map(response, function (item) {
                    return {
                        text: item.Title,
                        id: item.NibafInstituteId
                    }
                })
            };
        }
    }
});