2016-07-27 2 views
1

私はselect2を複数選択しています。Select2で選択した値の配列の参照を取得できますか?

オプションを選択するには、次の2通りの方法があります。 タイプを選択し、選択ボックスで選択します。 クリック可能なメニューがあり、それをselect2 selectボックスに追加します。

今回は正常に動作しませんが、メニューを使用してオプションを選択できます。

私が知りたいことは、選択した値の配列の参照を持つことは可能でしょうか?

私はメニューから選択するとき、それはselectedValuesArray

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

に選択のIDを推進するという配列、selectedValuesArray、 を持っているもの、私が今やっていることは、 であるため、だから私は選択した値自体の配列の参照を持つことができますので、そこに項目を押し込んでスプライスします。

編集: Select2.val()は配列です。 その配列への参照を、 のようにしたいと思います。var selectionArray = Select2.val(); そして、私はその配列を動的に操作したいと思います。 //選択項目を追加するのが好きです。 selectionArray.push( "1"); //選択を削除する selectionArray.splice(indexOf( "1")、1);

可能ですか?

+0

あなたが好きSELECT2の値を選択することができます:$( '#の選択ボックス')の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

関連する問題