我在一个有多个选择的表单中使用bootstrap-select,但我克隆或创建了具有新ID和相同类的新选择并使用:
$(".selectpicker").selectpicker("render"); or
$(".selectpicker").selectpicker("refresh");
并且新选择没有更新,我还尝试克隆正常选择和创建的bootstrap-select更改ID以及data-id和$(".selectpicker").selectpicker("refresh");
,但这不起作用。
如何做到这一点。
更新
这是基本的HTML,基本上我使用的是Django formset,这里我有一个带表的表单,每行都是一个带有输入和选择的新表单实例。
<tr class="dynamic-form">
<td class="" style="text-align: center">
<input type="number" name="caracteristicas-0-ORDER" value="1" id="id_caracteristicas-0-ORDER">
</td>
<td class="" style="text-align: center">
<select name="caracteristicas-0-caract" data-live-search="true" class="form-control selectpicker" id="id_caracteristicas-0-caract" style="display: none;">
<option value="1" selected="">Nombre</option>
<option value="2">Ref</option>
<option value="3">Modelo</option>
</select>
</td>
Javascript基本上是这样的:
---- onClickButton ----
row = tr.clone(true); <----- this was the problem
/* clear values, change id's, etc. */
row.insertBefore(lastRow).show();
row.find('.bootstrap-select').remove();
$('.selectpicker').selectpicker("render");
答案 0 :(得分:0)
阅读完所有库代码后,问题出现在这一行:
row = tr.clone(true);
当您使用clone(true)
时,您将获得元素和所有事件处理程序等的副本。您只需要获得元素结构的干净副本。
所以解决方案是:
row = tr.clone();