我有一个包含select2选项的表。每行都有一个添加按钮,该属性中包含默认值。当用户添加项目时,必须更新具有相同默认值的每个select2框。这是我的代码的一部分:
<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控件显示新值,其他控件显示“--Select - ”。
我使用的是最新版本的select2 v4。
答案 0 :(得分:0)
解决了它。这条线:
var newOption = new Option(name, newId, true, true);
必须在每个循环内。