动态创建的选择器 select

Selectpicker on dynamically created select

我正在使用具有多个 select 的表单中的 bootstrap-select,但我克隆或创建具有新 ID 和相同 select 的新 select =34=] 并使用:

$(".selectpicker").selectpicker("render"); or
$(".selectpicker").selectpicker("refresh");

并且新的 selects 没有得到更新,我也尝试克隆正常的 select 和创建的 bootstrap-select 更改 ID 和数据 ID和 $(".selectpicker").selectpicker("refresh"); 但这不起作用。

这怎么能做到。

更新

这是基本的 HTML,基本上我使用的是 Django 表单集,这里我有一个带有 table 的表单,每一行都是一个带有输入和 [=36= 的新表单实例]s.

<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");

阅读所有库代码后,问题出在这一行:

row = tr.clone(true);

当您使用 clone(true) 时,您会获得元素和所有事件处理程序等的副本。您只需要获得元素结构的干净副本。

所以解决方案是:

row = tr.clone();