繁体   English   中英

select2默认值不完整

[英]select2 default values incomplete

我有一个具有以下值的输入: e22,e33,e35

在该输入上,我想使用上述默认值初始化select2 我尝试使用的代码如下:

$('input[name="postal_code"]').select2({
    placeholder: 'search a postal code',
    allowClear: true,
    minimumInputLength: 2,
    maximumSelectionSize: $maxInput,
    multiple: true,
    tokenSeparators: [",", " "],
    createSearchChoice: function(term, data) {
        if ($(data).filter(function() {
            return this.text.localeCompare(term)===0;
        }).length === 0) {
            return {
                id: term,
                text: term
            };
        } 
    },
    ajax: {
        url: $url,
        dataType: "json",
        data: function(term, page) {
            return {
                query: term
            };
        },
        results: function(data, page) {
            console.log(data);
            return {
                results: data,
            };
        }
    },
    initSelection: function(element, callback) {
        var data = [];
        $(element.val().split(",")).each(function(i, v) {
            console.log(v);
            data.push({
                text: v
            });
        });
        console.log(data);
        callback(data);
    }
});

问题是选择初始化后的输入没有以下标记: 我只有

有什么想法,为什么其余的都被删掉?

JSFiddle: http : //jsfiddle.net/alleks/fMXxL/

看起来它不起作用的原因是因为它正在为每个对象寻找唯一的ID。 如果我们向每个对象添加一个ID,那么它就可以工作...

initSelection: function(element, callback) {
    var data = [];
    var counter = 1;
    $(element.val().split(",")).each(function(i, v) {
        console.log(v);
        data.push({
            id: counter,
            text: v
        });
        counter++;
    });
    console.log(data);
    callback(data);
}

但是用初始化数据的方式如果我在字段中键入并输入我的选择并按space,不会创建新标签...

我更幸运的是使用了tags:属性来返回数据数组,这里是一个示例。

http://jsfiddle.net/bM9C9/

不知道上面的示例是否会有所帮助,但以为我可以包括它,以防万一您可以使用tags:初始化数据tags:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM