web-dev-qa-db-ja.com

Select2では複数の値を設定できません

Select2-jqueryコンポーネントで選択した値を表示しようとしています。

var select = $(".select2").select2({
    multiple: true,
    placeholder: "",
    width:'100%',
    data: z 
});
var selectedValues = $("#sourceValues").val().split(',');

$.each( selectedValues, function(k,v){
    $(".select2").select2('val',v);
})

要素sourceValuesは値を保持します。例:2,4そしてzは、推奨されるIDとテキストを保持するオブジェクトの配列です。 <options>はSelect2要素にリンクされていますが、選択した値を要素に表示できません。また、Chrome consoleでクエリを実行しようとすると、次のように記述しても動作します。

  $(".select2").select2('val',4) 

従って <option>のid 4が選択されています。

8
Sahin Yanlık

http://ivaynberg.github.io/select2/#documentation

val

選択にアタッチ-多値-選択する必要があるオプションの値属性の配列。空の場合はnull。

そう:

var selectedValues = $("#sourceValues").val().split(',');
$(".select2").select2('val',selectedValues);
9
Krzysiek

誰かが必要な場合のSelect2 4.0バージョン:

var selectedValues = $("#sourceValues").val().split(',');
$(".select2").val(selectedValues).trigger("change");
37
Saeed
var selectedValues = $("#sourceValues").val().split(',');
var $multiSelect = $(".select2").select2();
$multiSelect.val(selectedValues).trigger("change");
5
Rohit

たとえばループで動的配列を作成するには、次のようにします。

 data=[]

    for(let input of inputs){

          *//key of dynamic build*
           if(typeof data[input.name]==='undefined'){
                data[input.name]=[]}
            data[input.name].Push(input.value);
            console.log(data)
        }
0