2017-10-04 35 views
0

我有一个select2选择表。每行都有一个添加按钮,该按钮在属性中具有默认值。当用户添加一个项目时,每个具有相同默认值的select2框必须更新。这里是我的代码的一部分:Select2 v4 append不适用于多个选择控件

<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更改事件被触发(选择使用Ajax保存)。唯一的问题是;只有一个select2控件显示新值,其他控件继续显示“ - 选择 - ”。

我使用的是最新版本的select2 v4。

回答

0

解决了它。该行: var newOption = new Option(name, newId, true, true); 必须在每个循环内。