25

私は素晴らしいselect2を使用して、複数選択コンボを作成しています。

(ユーザーが以前に行った選択のように) プログラムで既定値を選択したいのですが、その方法がわかりません。initSelection を使用するとうまくいくと読んだことがありますが、これはコンボを作成するときに呼び出され、このデフォルトの選択を常に実行したくありません。

4

11 に答える 11

19

例によるバージョン 4.x の正しいソリューション:

$('#element').val(['val1','val2']).trigger('change');

参照:作成者の説明

于 2016-12-18T07:49:29.503 に答える
7

私はいくつかの解決策を見つけました。おそらくそれがあなたを助けるでしょう:

$('#el').select2({...}) // init select2

var defaultData = [{id:1, text:'Item1'},{id:2,text:'Item2'},{id:3,text:'Item3'}];

$('#el').data().select2.updateSelection(defaultData);
于 2013-05-22T14:22:12.393 に答える
2

$('#el').select2().val(['val1','val2']).trigger("change")

トリックはしますが、何らかの理由で独自のタグを追加する機能が削除されます...

于 2016-08-09T17:46:59.690 に答える
0

次のコードは問題なく動作しますが、select2更新する必要があります

$('#el').data().select2.updateSelection(defaultData);
于 2014-01-13T11:56:59.787 に答える
0

値の配列をループしてから、一致する各オプションを ("selected",true) に設定します

values = [2, 5, 3]

for val in values
  $("#selects_id option[value="+val+"]").prop("selected",true).trigger("change")

Ajax 呼び出しから取得した結果を処理することもできます。

于 2017-12-12T18:12:19.317 に答える
0

やっとわかった!!Select2 は、 の<option>下のタグを反復処理し<select>ます。

<select class="js-data-example-ajax" style="width:100%">
  <option value="3620194" selected="selected">Put the pre-selected options here</option>
</select>

の内部 html は<option>、テキスト キーの下の repo オブジェクトに配置されます。したがってrepo.text、innerhtmlが提供されます。つまり、initrepo.textformatSelectionオプションを指定するだけです。また、サーブレット (コントローラー) から渡される json には、目的のラベル テキストがtextキーの下に配置されている必要があります!! 変更されたリストを保存できるように、作成された li 要素に属性を追加する方法をまだ考えています。何か案は?

于 2017-03-30T10:26:18.943 に答える
-1

ここでは、 JQuery Select2 を使用したオートコンプリートの複数選択ドロップダウン リストで解決策を見つけることができます。

データを HTML の「select」要素にバインドし、それを「Select2」関数によって引き継いで、美しい複数選択ドロップダウン リストに変換します。

AJax を使用すると適切に動作する可能性があり、今後数日中に試してみることになります。

于 2013-07-14T06:00:01.340 に答える