2016-07-27 25 views
1

我有一个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);

可能吗?

+0

可以得到选择的选择2样值:$( '#选择框')VAL();这会给你一个选定的选项值的数组。 – Qsprec

+0

澄清你在问什么。您目前正在将自己的选择值数组放入名为'selectedValuesArray'的数组中。基本上想知道是否有一种方法来获得该阵列,而不必自己做?你在问什么?我只是不确定问题在这里。 –

+0

$('#selectbox')。val()返回一个数组的权利?那就是我想要引用的数组。我想操作这个数组,所以我不必创建另一个数组并将其设置为$('#selectbox')的数组。所以我可以推送并拼接到该数组,而不是推送并拼接到数组并设置选择框数组。 – Wreigh

回答

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" />

原始小提琴可以发现here

+0

我会试试:) – Wreigh

+0

谢谢你的努力,即使它是一种不同的方法,我也一定会尝试。等待:) – Wreigh

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'); 

希望这有助于:)

+0

我稍后再试一下谢谢:D – Wreigh

+0

哎Qsprec,感谢您的输入。但这是我第一次尝试,而且它在工作,但@gotnull提供了一个更好的方法。 – Wreigh

+0

如果你解决了你的问题,那也没问题,但是这也可以。现在在我的项目中也使用该代码。 – Qsprec

相关问题