是否可以在Select2上获得所选值数组的引用?

时间:2016-07-27 05:45:21

标签: javascript jquery select2

我有一个select2,它是多重选择。

有两种方法可以选择一个选项: 在选择框中输入并选择, 您可以单击一个菜单,它会将其添加到select2选择框中。

这次工作不正常,但我已经可以使用菜单选择选项了。

我想知道的是,我是否可以引用所选值数组?

因为我现在正在做的是, 我有一个名为selectedValuesArray的数组, 当我从菜单中选择时,它会将选择的ID推送到selectedValuesArray

$('#selectbox').val(selectedValuesArray).trigger("change");

那么我可以在所选值本身的数组上有一个引用,所以我只是在那里推送和拼接项目吗?

编辑: Select2.val()是一个数组。 我希望有一个像这样的数组的引用,     var selectionArray = Select2.val(); 我想动态地操纵该数组。     //喜欢添加选择     selectionArray.push( “1”);     //或删除选择     selectionArray.splice(indexOf(“1”),1);

有可能吗?

2 个答案:

答案 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;
&#13;
&#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');

希望这有帮助:)