Select2标签 - 动态添加到预选

时间:2014-08-22 22:10:59

标签: javascript jquery-plugins jquery-select2

我正在使用我设置的select2 tagging

  $("#el1").select2({
    tags: tags,
    tokenSeparators: [",", " "]
  });

然后我挂起了onchange事件的元素,这样如果添加或删除了一个标签,我就进行ajax调用来更新数据库(e.added / .deleted)。

如何在不破坏/重新创建select2对象的情况下动态地将标签添加到预选列表中?

2 个答案:

答案 0 :(得分:1)

如果要动态选择/添加新标签;你可以用这个

$("#el1").val("New").trigger("change");

但是,如果您想要的是动态更改/更新标签dataSource。遗憾的是,如果不破坏并重新创建select2

,你就无法做到这一点

答案 1 :(得分:0)

这是我对初始选定值的解决方案

$( function() {
    var selectedValue = ['1', '2', 'New tag'];

    for ( var i = 0; i < selectedValue.length; i++ ) {
        if ( $( 'form :input[name="multiple-select[]"] option[value="' + selectedValue[i] + '"]' ).length < 1 ) {
            $( 'form :input[name="multiple-select[]"]' ).append(
                '<option value="' + selectedValue[i] + '" data-select2-tag="true">' + selectedValue[i] + '</option>'
            );
        }
    }

    $( 'form :input[name="multiple-select[]"]' )
        .select2( {
            tags: true
        } )
        .val( selectedValue )
        .trigger( "change" )
    ;
} );