javascript - 在同一页面中克隆 Bootstrap-select

标签 javascript jquery

我正在尝试克隆 Bootstrap 选择字段,但在克隆它之后,克隆的选择不选择任何内容。

这是我的标记:

     <div class="form-group car-list">
         <label class="col-md-3 control-label">Select car #1</label>
         <div class="col-md-9">
            <div class="input-group">
               <select  class="select-car" data-live-search="true">
                  <option></option>
                  <option value="1">option 1</option>
                  <option value="2">option 2</option>
               </select>
            </div>
        </div>
    </div>

还有我的js:

$(document).ready(function() {
    $('.select-car').selectpicker();
});

$('#add').click(function () {
    var n = $('.car-list').length + 1;
    var temp = $('.form-group:last').clone(true);
    $('.control-label:first', temp).html('Select car #' + n);
    $('.form-group:last').after(temp);
});

我尝试使用 selectpicker refresh 命令:结果是我在克隆的 div 中有第二个 selectpicker。

最佳答案

Working Fiddle .

您可以使用在每个克隆中调用的选择模型,然后在克隆之后初始化选择,如下所示:

$('#add').click(function() {
    var n = $('.car-list').length + 1;
    var temp = $('.form-group:last').clone(true).removeClass('select-car');
    $('.control-label:first', temp).html('Select car #' + n);
    $('.input-group', temp).html($('#select-model').html());
    $('.select-car', temp).selectpicker();

    $('.form-group:last').after(temp);
});

可运行代码段:

$('#add').click(function() {
  var n = $('.car-list').length + 1;
  var temp = $('.form-group:last').clone(true).removeClass('select-car');
  $('.control-label:first', temp).html('Select car #' + n);
  $('.input-group', temp).html($('#select-model').html());
  $('.select-car', temp).selectpicker();

  $('.form-group:last').after(temp);
});
.category {
  margin-left: -12px;
  font-size: 1.3em;
  /*safari won't respect many/any of these but color?*/
  /*font-style: italic;*/
  font-weight: bold !important;
  color: #000000 !important;
  /*straight black makes it pop*/
  /*background: #000;*/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.5/css/bootstrap-select.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.5/js/bootstrap-select.min.js"></script>


<div class="form-group car-list">
  <label class="col-md-3 control-label">Select car #1</label>
  <div class="col-md-9">
    <div class="input-group">
      <select class="select-car selectpicker" data-live-search="true">
        <option></option>
        <option value="1">option 1</option>
        <option value="2">option 2</option>
      </select>
    </div>
  </div>
</div>

<div id="select-model" class="hide">
  <select class="select-car" data-live-search="true">
    <option></option>
    <option value="1">option 1</option>
    <option value="2">option 2</option>
  </select>
</div>
<button id="add">Add</button>

关于javascript - 在同一页面中克隆 Bootstrap-select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486132/

相关文章:

javascript - 使用相似的源代码加载多个 D3 map

javascript - 从顶部悬停动画

javascript - jquery菜单(某些 `<li>`包含内部 `<ul>`标签)

javascript - 无法使用 F12 firefox 调试自定义 javascript 文件并添加断点

javascript - 在 JavaScript 回调函数中设置局部变量

javascript - JQuery 获取点击链接的 ID

javascript - 如何过滤 JSON 对象 (JavaScript)

javascript - 使 JS 代码不可读/重到 "hack"

javascript - 更改 Google ComboChart 中的带颜色

javascript - 为什么即使两个 URL 都来自 XXXX.com,我仍然收到 405 错误?