2016-07-27 62 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

相關問題