2017-11-04 160 views
0

我使用的自举选在几个选择的形式,但我会克隆,或创建新的ID和同一类和利用新选择:Selectpicker上动态创建的选择

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

和新的选择没有按没有更新,我也尝试克隆正常选择和创建引导程序选择更改ID和数据ID和$(".selectpicker").selectpicker("refresh");,但这是行不通的。

这是怎么做到的。

UPDATE

这是基本的HTML,基本上我使用Django表单集,在这里我有一个表的形式,每一行是带有输入和选择一个新的表单实例。

<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

你可以把相关的JavaScript和HTML到你的问题? –

+1

在添加新的原始html选择框以初始化这些新元素的插件后,您可能需要调用'$(“。selectpicker”)。selectpicker()'。 – DelightedD0D

+0

不,它不起作用。选择器工作并找到新的html选择,但它们不会通过bootstrap-select进行更新 –

回答

0

阅读所有库代码之后,这个问题是在这条线:

row = tr.clone(true); 

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

因此,解决办法是:

row = tr.clone();