bootstrap selectpicker和克隆

问题描述 投票:4回答:3

我一直在使用bootstrap selectpicker,我在其中添加了一个Add Button,供用户根据需要复制按钮。问题是,selectpicker不在第二个/克隆元素上工作,下拉列表的值只是显示而不是在点击时改变。

主要选择:

<div id="main_product">
  <select name="product[]" class="selectpicker" >
   <option value="Tube Lights" >Tube Lights</option>
   <option value="Downlights" >Downlights</option>
  </select>
</div>

克隆功能:

function clone()
{
    var $orginal = $('#main_product');
    var $cloned = $orginal.clone();

    $cloned.appendTo('#new_products');
    // $cloned.find('.bootstrap-select').remove();
    // $cloned.find('select').selectpicker();
}

请注意,我尝试将selectpicker重新分配给注释atm中的克隆对象,因为它也可以工作。

任何帮助将非常感激。

bootstrap-select
3个回答
5
投票

我遇到了这个问题,但如果现在使用最新版本,则选择放在.bootstrap-select元素内,以便进行html5错误处理。 remove()也删除了select,解决方法是:

代替:

$cloned.find('.bootstrap-select').remove();

使用:

$cloned.find('.bootstrap-select').replaceWith(function() { return $('select', this); });

这将用它包含的select元素替换.bootstrap-select元素。


1
投票
function clone()    
{    
  //you can use :    
     var $orginal = $('#main_product');    
     var $cloned = $orginal.clone();    
  //Or    
     var $cloned = $('#main_product').clone(); 

  //then use this to solve duplication problem    
     $cloned.find('.bootstrap-select').replaceWith(function() { return $('select', this); })    
     $cloned .find('.selectpicker').selectpicker('render'); 

  //Then Append    
     $cloned.appendTo('#new_products');    
}

0
投票

如果我们用select替换bootstrap-select,那么问题就是HTML结构。所以,原始元素是实际的bootstrap-select和克隆是正常选择。请仔细阅读以下内容以获得更多说明。 enter image description here

而不是这个

$cloned.find('.bootstrap-select').replaceWith(function() { return $('select', this); });

使用

$cloned.selectpicker('refresh');
$cloned.find('.bootstrap-select:odd').remove();
© www.soinside.com 2019 - 2024. All rights reserved.