我正在尝试在我的网站上创建一个页面,我想使用这个select2(http://ivaynberg.github.io/select2/)插件。我的要求是多次包含相同的“单词”。
我的标签可能是:
目前,当我添加任何选项时,将其从列表中删除。如何重新添加?
另一个问题是,现在如果我想删除“抵押”之前的“佣金”,它不应该删除最后的另一个“佣金”字。
请帮助我了解如何实现这一目标。
答案 0 :(得分:1)
只需使用计数器和查询函数来提供数据:
var fruits = ['apple', 'pear', 'orange', 'strawberry']
var counter = 0
$("#yourinput").select2({
query: function(query) {
var data = { results: []};
for (var i = 0; i < fruits.length; i++) {
data.results.push({"id": fruits[i] + "/" + counter, "text": fuits[i]});
}
counter += 1;
query.callback(data);
},
formatSelection: function(item) {
return item.text; // display apple, pear, ...
},
formatResult: function(item) {
return item.id; // display apple/1, pear/2, ... Return item.text to see apple, pear, ...
},
multiple: true,
closeOnSelect: true
}
因此,当您第一次单击选择框时,数据将使用apple / 1,pear / 1,...初始化。下一次,您将获得apple / 2,pear / 2,...,next apple / 3,......等等。
每次选择水果时,您都会获得不同的ID,即使您选择了之前选择的水果。保持一个独特的计数器,你在每个选择时增加,允许你删除没有副作用的水果:它的ID消失了,不会被重复使用。
closeOnSelect设置为true,以在每次选择时递增计数器(更准确地说,每次打开选择框时)。如果您将其设置为false,当您选择水果时,它会从列表中消失,并且您不能选择两次相同的水果,除非您关闭该框。
验证表单时,只需删除尾随&#34; / xx&#34;获得正确的身份。
我希望你想要它。
丹尼斯