我一直在尝试新的Select2 v4.0,它有很多改进。我主要对tags
功能感兴趣。我希望能够通过ajax搜索标签,只能能够从显示的结果中选择标签,而无法创建新标签。该功能类似于StackOverflow - 如果您没有必要的声誉,则无法创建新标签,但您仍然可以使用现有标签标记问题。
这是一个jsfiddle我的代码来自示例。在该示例中,您可以创建我想要限制的新标记。用户应该只能从通过ajax从GitHub检索的列表中选择标签。
有人知道如何禁用此功能吗?
答案 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
}
})
};
}
}
});