我有一个运行良好的select2 dropbox,但我希望能够使用jquery覆盖用户的选择。我的小提琴http://jsfiddle.net/2br68kjv/显示标签框已经显示'摇滚和'纸'。我想要的是用'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;
}
答案 0 :(得分:1)
我想你是说你想在不改变选项列表的情况下用不同的选择替换第一个选择?如果是这样,我只需再次设置值即可。
$("#buttoncode").on("click", function() {
// overwrite selection
$('#dropList').val(["Paper", "Scissors"]).trigger('change.select2');
$('#dropList').val(sel).trigger('change.select2');
})
这里是小提琴: http://jsfiddle.net/kygk7ef4/