是否可以在 Select2 上获取选定值数组的引用?
Is it possible to get a reference of the array of selected values on a Select2?
我有一个 select2,它是多个 select。
有两种方法可以select一个选项:
在 select 框中键入并选择,
有一个菜单,您可以单击该菜单并将其添加到 select2 select 框中。
这次不能正常工作,但我已经可以使用菜单 select 选项了。
我想知道的是,我是否可以参考 selected 值的数组?
因为我现在正在做的是,
我有一个名为 selectedValuesArray
的数组,
当我从菜单中 select 时,它会将 selection 的 ID 推送到 selectedValuesArray
和
$('#selectbox').val(selectedValuesArray).trigger("change");
所以我可以只引用 selected 值本身的数组,这样我就可以在那里推送和拼接项目吗?
编辑:
Select2.val() 是一个数组。
我想引用那个数组,比如
var selectionArray = Select2.val();
我想动态地操作那个数组。
// 就像添加一个 selection
selectionArray.push("1");
// 或者移除一个 selection
selectionArray.splice(indexOf("1"), 1);
可能吗?
如果我没有正确理解你的问题,那么你正在寻找这样的东西:
$("#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" />
可以找到原文fiddlehere。
好的,我已经达到你想要的效果了。这是代码;
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');
希望这对您有所帮助 :)
我有一个 select2,它是多个 select。
有两种方法可以select一个选项: 在 select 框中键入并选择, 有一个菜单,您可以单击该菜单并将其添加到 select2 select 框中。
这次不能正常工作,但我已经可以使用菜单 select 选项了。
我想知道的是,我是否可以参考 selected 值的数组?
因为我现在正在做的是,
我有一个名为 selectedValuesArray
的数组,
当我从菜单中 select 时,它会将 selection 的 ID 推送到 selectedValuesArray
和
$('#selectbox').val(selectedValuesArray).trigger("change");
所以我可以只引用 selected 值本身的数组,这样我就可以在那里推送和拼接项目吗?
编辑: Select2.val() 是一个数组。 我想引用那个数组,比如 var selectionArray = Select2.val(); 我想动态地操作那个数组。 // 就像添加一个 selection selectionArray.push("1"); // 或者移除一个 selection selectionArray.splice(indexOf("1"), 1);
可能吗?
如果我没有正确理解你的问题,那么你正在寻找这样的东西:
$("#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" />
可以找到原文fiddlehere。
好的,我已经达到你想要的效果了。这是代码;
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');
希望这对您有所帮助 :)