如何刷新标签框并在 Select2 中添加选择

How to refresh tagbox and add selections in Select2

我有一个运行良好的 select2 保管箱,但我希望能够使用 jquery 覆盖用户的选择。我的 fiddle http://jsfiddle.net/2br68kjv/ 显示标签框已经显示 'Rock and 'Paper'。我想要的是用'Paper'和'Scissors'替换内容。我的想法是先清除标签框,然后添加新的选择。在现实生活中,我的列表很长,首先清除标记框中的所有内容会节省大量代码。但是在使用 .val('') 清除标记框后似乎没有任何效果。非常感谢任何想法。

<select id="dropList" style="width:300px" multiple="multiple">
  <option value="Rock">Rock</option>
  <option value="Paper">Paper</option>
  <option value="Scissors">Scissors</option>
</select>

<br>
<br>
<button name="button" id='buttoncode' value="OK" type="button">Click Me</button>



$("#dropList").select2();
$('#dropList').val(["Rock","Paper"]).trigger('change.select2');

$("#buttoncode").on("click", function()  {

$('#dropList').val('').trigger('change.select2');

var sel=$('#dropList').val();
sel.push("Paper");
sel.push("Scissors");
$('#dropList').val(sel).trigger('change.select2');

})



select {
width:300px;
}

我想你是说你想在不更改选项列表的情况下用不同的选择替换第一个选择?如果是这样,我只是通过再次设置值来做到这一点。

$("#buttoncode").on("click", function()  {
// overwrite selection
$('#dropList').val(["Paper", "Scissors"]).trigger('change.select2');
$('#dropList').val(sel).trigger('change.select2');
})

这是 fiddle: http://jsfiddle.net/kygk7ef4/