2017-10-04 8 views
0

select2の選択肢があるテーブルがあります。各行には、属性にデフォルト値のある追加ボタンがあります。ユーザーが項目を追加すると、同じデフォルト値を持つ各select2ボックスを更新する必要があります。ここに私のコードの一部です:Select2 v4は、複数の選択コントロールでは機能しません。

<tr> 
    <td> 
     <div class="gb-select-div" rowId="279525"> 
      <select class="idInLine"> 
       <option value="">--Select--</option> 
      </select> 
     </div> 
    </td> 
    <td> 
     <a href='#' default="Piet" class='ui-icon ui-icon-circle-plus addId'></a> 
    </td> 
</tr> 

var rowId; 
var def; 
var newOption = new Option(name, newId, true, true); 
$(".idInLine").each(function() { 
    rowId = $(this).closest('div').attr('rowId'); 
    def = $('#tr' + rowId).find(".addId").attr("default") 
    if (def === defaultValue) { 
     $(this).append(newOption).trigger('change'); 
    } 
}); 

コードはほとんど動作しています。新しい項目が追加されました(Ajax)。 select2 changeイベントがトリガーされます(セレクションはAjaxで保存されます)。唯一の問題は、 1つのselect2コントロールだけが新しい値を表示し、他のコントロールは " - 選択 - "を表示し続けます。

私は最新バージョンのselect2 v4を使用しています。

答えて

0

解決しました。行: var newOption = new Option(name, newId, true, true); は各ループの内側になければなりません。

関連する問題