jQuery Select2 - 多次选择相同的选项

时间:2014-09-21 00:29:06

标签: jquery-plugins jquery-select2

我正在尝试在我的网站上创建一个页面,我想使用这个select2(http://ivaynberg.github.io/select2/)插件。我的要求是多次包含相同的“单词”。

我的标签可能是:

  • Monthly_Rent,Monthly_Rent,佣金,抵押,佣金
  • 当用户加载页面时,我想维护用户在保存之前选择它的顺序。

目前,当我添加任何选项时,将其从列表中删除。如何重新添加?

另一个问题是,现在如果我想删除“抵押”之前的“佣金”,它不应该删除最后的另一个“佣金”字。

请帮助我了解如何实现这一目标。

1 个答案:

答案 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;获得正确的身份。

我希望你想要它。

丹尼斯