2017-07-04 5 views
0

select2複数選択検索入力に追加するJSON文字列があります。私は以下のようにマップのエラーを取得しています複数選択用のSelect2検索フォームの値を設定する

未定義

コンソールログからのJSONフィールドのプロパティ 'マップ'

[{"id":1,"name":"Test Test"},{"id":2,"name":"Billy A"}] 

あるとJSコードをされて読み取ることができません

var employees = $(this).attr('data-employees'); 
    console.log(employees); 

    $("select[name='employees[]']").val(employees.data.map(function(x) { 
    return x.id; })); // Set the selected data before show it. 
      $('select').select2() 

HTML

<select multiple="multiple" name="employees[]" id="form-field-select-4" width="200px "class="form-control search-select"></select> 
+1

あなたの質問から与えられたオブジェクトの配列を与える 'employees'のcosole.logがあれば、単純にデータを取り除き、それを' .val(employees.map(function(x){... 'のようにします。 –

+0

データが削除されました。私は "employees.mapは関数ではありません"を取得します。 –

答えて

1

このしようと、私はあなたが要素の属性からこの配列を取得している見ることができるように、あなたがしている場合は、おそらくにconsole.logはとても文字列です:あなたはこの

が表示された場合

var employees = JSON.parse($(this).attr('data-employees')); 
console.log(employees); 

$('select').select2(); // init with select2 
$("select[name='employees[]']").val(employees.map(function(x) { 
    return x.id; // Set the selected data before show it. 
})) 
.trigger("change"); 

var employees = JSON.parse('[{"id":1,"name":"Test Test"},{"id":2,"name":"Billy A"}]'); 
 
console.log('The whole array:', employees); // you have a valid array 
 

 
var ids = employees.map(function(x){ return x.id; }) 
 
console.log('Employee ids only: ', ids);

編集

+0

これ以上のエラーは発生しません。これに対するconsole.logは[Object、Object]を返します。モーダル選択フィールドは値なしの空白です。 –

+0

私は自分の答えを編集しました。あなたがあなたのconsole.logでもこれを見たことがあれば、問題はどこか他の場所にある]。 –

+0

真。私はあなたの結果を見ました。私の問題は、他の場所でデータを選択ボックスに配置することです。 select2() –

関連する問題