2016-03-25 6 views
1

私はselect2の古いバージョンを使用しています - 選択肢に配列をバインドするには、<input type="text">を使用する必要があります。 selectの値を特定のアクション、たとえばクリックで特定の値に設定することは可能ですか?私はスタックオーバーフローで多くの質問をしましたが、解決策がない場合は<input type="text">のように見えます。ここでjQuery Select2 3.5.2動的に作成されたドロップダウンメニューの値を設定

は私のコード

var value = [{ 
 
    id: 0, 
 
    text: 'enhancement' 
 
}, { 
 
    id: 1, 
 
    text: 'bug' 
 
}, { 
 
    id: 2, 
 
    text: 'duplicate' 
 
}, { 
 
    id: 3, 
 
    text: 'invalid' 
 
}, { 
 
    id: 4, 
 
    text: 'wontfix' 
 
}] 
 

 

 
$(document).ready(function() { 
 
    $(".lang").select2({ 
 
    data: value 
 
    }) 
 

 

 
}); 
 

 
$("#btn").click(function() { 
 
    $(".lang").select2('val', 'bug'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.css" rel="stylesheet" /> 
 

 

 
<input class="lang" type="text" style="width:100px"> 
 
<input class="lang" type="text" style="width:100px"> 
 
<input class="lang" type="text" style="width:100px"> 
 

 
<button id="btn">Click Here</button>

答えて

2

更新答え、同じ時間(クラス)に変更される複数の選択をサポートし、データを使用する(ID &テキスト)オブジェクトの代わりに、値(ありますid)

  1. なぜselect2()を2回呼び出すのですか?
  2. あなたが何かを選択する場合は、パラメータとして値を渡す必要はなく、説明

迅速な解決策:$("#lang").select2('val', 1);

var value = [{ 
 
    id: 0, 
 
    text: 'enhancement' 
 
}, { 
 
    id: 1, 
 
    text: 'bug' 
 
}, { 
 
    id: 2, 
 
    text: 'duplicate' 
 
}, { 
 
    id: 3, 
 
    text: 'invalid' 
 
}, { 
 
    id: 4, 
 
    text: 'wontfix' 
 
}] 
 

 

 
$(document).ready(function() { 
 
    $(".lang").select2({ 
 
    data: value 
 
    }) 
 

 

 
}); 
 

 
$("#btn").click(function() { 
 
    $(".lang").select2('val', 1); 
 
}); 
 

 
$("#btn-2").click(function() { 
 
    $(".lang").select2('data', {id: 0, text: 'enhancement'}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.css" rel="stylesheet" /> 
 

 

 
<input id="lang_1" type="text" class="lang" style="width:100px"><br /> 
 
<input id="lang_2" type="text" class="lang" style="width:100px"><br /> 
 
<input id="lang_3" type="text" class="lang" style="width:100px"><br /> 
 

 
<button id="btn">Set all to value 1</button><br /> 
 
<button id="btn-2">Set all to data (id & text object)</button>

+0

私が働いた何かこのフィドル。 - https://jsfiddle.net/ahmadtarawneah/o0uxjjtq/23/。答えに感謝します。 –

+0

あなたはそれを答えとしてマークすることができます。 – qdev

+0

私は少し質問を変更しました。実際には問題はセレクタで、クラスを使用している場合上記のコードは動作していません。私は複数の選択ボックスを持ち、 'id'の代わりに' class'を使用しなければなりません –

関連する問題