在select2中预选Item

时间:2017-01-12 18:08:51

标签: asp.net-mvc jquery-select2

我在Asp.net MVC项目中使用Select2。我创建了一个博客。每个帖子都有一些标签。我正在使用select2 multiselect来选择标签。在创建页面中,我可以搜索并选择标签并保存在数据库中。

问题: 在编辑页面也我的select2工作正常。但我想在编辑页面加载中添加一些标签,用户在创建页面中添加了这些标签。然后用户可以更改标签。 我无法在select2

中预选标签

1 个答案:

答案 0 :(得分:1)

这个小jquery函数会为select2

添加选项
$.fn.select2AddOptions = function(options) {
    this.each(function(){
        var $ele = $(this);
        var data = $ele.data('select2');
        if(data) //the $.extend is not recursive change the false for true if needed
            $ele.select2($.extend(false,{},data.options.options,options));
    });
    return this;
}

然后您可以使用它来添加不在<option>或select2数据中的额外数据:

$('#element').select2AddOptions(
{data:[{id:{{ location.id }},text:'{{ location.name }}',color:'{{ location.color }}'}]}
).trigger('change');

如果您需要更改所选元素:

$('#element').val(['id1','id2']).trigger('change');

当你选择选项时,你需要select2激活他的事件,你需要像这样手动发射事件:

$('#element').trigger($.Event('select2:select', {params: {data: [...]}}))