SELECT2 - >添加数据而不替换内容

Jac*_*son 5 html javascript jquery jquery-select2

我已经看了一些其他线程,但没有什么特别的.这不是我认为很难的事情,但我不知道该怎么做.

目前我正在使用Select2作为标记系统,在它旁边我建议用户可以点击的标签,它将添加到框中.

相反,每个标签都在替换内容并添加自身.

我需要将添加内容添加到框中而不替换已经存在的内容.

这是我的代码:

$(document).on('click', ".tag1", function () {
      var value = $(".tag1").html();
      console.log(value);
      $("#selectPretty").val([value]).trigger("change");
});
$(document).on('click', ".tag2", function () {
      var value = $(".tag2").html();
      console.log(value);
      $("#selectPretty").val([value]).trigger("change");
});
Run Code Online (Sandbox Code Playgroud)

数据通过AJAX提取,每个建议的标签都有一个范围.

希望我足够清楚.

摘要:我希望能够点击每个"标记"并添加它,而不是替换框中已有的标记.

谢谢

Gor*_*.it 15

你应该能够做到这一点:

var test = $('#test');

$(test).select2({
    data:[
        {id:0,text:"enhancement"},
        {id:1,text:"bug"},
        {id:2,text:"duplicate"},
        {id:3,text:"invalid"},
        {id:4,text:"wontfix"}
    ],
    multiple: true,
    width: "300px"
});
var data = $(test).select2('data');
data.push({id:5,text:"fixed"});
$(test).select2("data", data, true); // true means that select2 should be refreshed
Run Code Online (Sandbox Code Playgroud)

工作示例:http://jsfiddle.net/z96Ca/


Tom*_*now 5

您正在使用替换值val(mystuff).您想要执行以下操作:

  1. 使用输入获取输入中的当前数据 val()

    var dataOld = $('#selectPretty').val();

  2. 附加类似*的新数据

    var dataNew = dataOld.push(value);

  3. 将输入数据设置为新数据:

    $('#selectPretty').val(dataNew);

*这假定val()返回一个数组

文件