动态创建的选择器 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();
我正在使用具有多个 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();