2016-07-27 1 views
1

나는 다중 select 인 select2를 가지고있다.Select2에서 선택한 값의 배열에 대한 참조를 가져올 수 있습니까?

옵션을 선택하는 방법에는 두 가지가 있습니다. 입력하고 선택 상자에서 선택하십시오. 클릭 할 수있는 메뉴가 있으며이를 선택 2 선택 상자에 추가합니다.

이번엔 제대로 작동하지 않지만 이미 메뉴를 사용하여 옵션을 선택할 수 있습니다.

내가 알고 싶은 것은 선택한 값의 배열에 대한 참조를 가질 수 있습니까?

I가 지금 뭐하는 거지 때문에, 나는 메뉴에서 선택하면, 그것은 selectedValuesArray

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

에 선택의 ID를 밀어 버린다라는 배열, selectedValuesArray, 이 그래서 선택된 값 자체의 배열에 대한 참조를 가질 수 있습니다. 그래서 여기에 항목을 밀어 넣고 연결할 것입니까?

편집 : Select2.val()은 배열입니다. 해당 배열에 대한 참조를 갖고 싶습니다. var selectionArray = Select2.val(); 그리고 그 배열을 동적으로 조작하고 싶습니다. // 선택 항목을 추가하는 것과 같습니다. selectionArray.push ("1"); // 선택 항목을 제거하거나 selectionArray.splice (indexOf ("1"), 1);

가능합니까? 내가 제대로 질문을 이해 한 경우

+0

당신이 좋아하는 선택 2의 값을 선택받을 수 있습니다. $ ('#의 선택 박스') 발(); 선택한 옵션 값의 배열이 표시됩니다. – Qsprec

+0

당신이 무엇을 요구하고 있는지 명확히하기 위해서. 현재 선택된 값 배열을'selectedValuesArray'라는 배열에 넣고 있습니다. 그리고 기본적으로 배열을 만들지 않고 직접 만들지 않고 궁금해하십니까? 그게 당신이 요구하는 것입니까? 나는 그 질문이 무엇인지 확실하지 않다. –

+0

$ ('# selectbox'). val()은 배열을 올바르게 반환합니까? 그 배열에 대한 참조를 갖고 싶습니다. 이 배열을 조작하고 싶기 때문에 다른 배열을 만들어 $ ('# selectbox') 배열에 설정할 필요가 없습니다. 그래서 나는 그 배열에 push하고 splice 할 수 있고, 배열로 push하고 splice하지 않고 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