我有一个select2,它是多重选择。
有两种方法可以选择一个选项: 在选择框中输入并选择, 您可以单击一个菜单,它会将其添加到select2选择框中。
这次工作不正常,但我已经可以使用菜单选择选项了。
我想知道的是,我是否可以引用所选值数组?
因为我现在正在做的是,
我有一个名为selectedValuesArray
的数组,
当我从菜单中选择时,它会将选择的ID推送到selectedValuesArray
和
$('#selectbox').val(selectedValuesArray).trigger("change");
那么我可以在所选值本身的数组上有一个引用,所以我只是在那里推送和拼接项目吗?
编辑: Select2.val()是一个数组。 我希望有一个像这样的数组的引用, var selectionArray = Select2.val(); 我想动态地操纵该数组。 //喜欢添加选择 selectionArray.push( “1”); //或删除选择 selectionArray.splice(indexOf(“1”),1);
有可能吗?
答案 0 :(得分:2)
如果我能正确理解你的问题,那你就是这样的:
$("#e1").select2();
$("#checkbox").click(function () {
if ($("#checkbox").is(':checked')) {
$("#e1 > option").prop("selected", "selected");
$("#e1").trigger("change");
} else {
$("#e1 > option").removeAttr("selected");
$("#e1").trigger("change");
}
});
$("#button").click(function() {
console.log($("#e1").val());
});

<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/select2/3.2/select2.min.js"></script>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.2/select2.css">
<select multiple id="e1" style="width:300px">
<option value="AL">Alabama</option>
<option value="Am">Amalapuram</option>
<option value="An">Anakapalli</option>
<option value="Ak">Akkayapalem</option>
<option value="WY">Wyoming</option>
</select>
<input type="checkbox" id="checkbox" />Select All
<input type="button" id="button" value="Check Selected" />
&#13;
可以找到原始小提琴here。
答案 1 :(得分:2)
好吧,我已经成功实现了你想要的东西。这是代码;
var selectedArray = $('#selectbox').val();
var selectElem = $('#selectbox').select2();
//delete '42' from array
var index = selectedArray.indexOf('42');
data.splice(index,1);
selectElem.val(selectedArray);
selectElem.trigger('change');
//add '52' to array
selectElem.push('52');
selectElem.val(selectedArray);
selectElem.trigger('change');
希望这有帮助:)