【问题标题】:How to clone bootstrap multi-select dynamically?如何动态克隆引导多选?
【发布时间】:2016-04-04 07:20:28
【问题描述】:

$(function() {
  $('#days').multiselect({
    includeSelectAllOption: true
  });
  
  $('#btnSelected').click(function() {
    var selected = $("#days option:selected");
    var message = "";
    selected.each(function() {
      message += $(this).text() + " " + $(this).val() + "\n";
    });
    document.write(message);
  });
});
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js"></script>


<select id="days" multiple="multiple">
  <option value="1">thusday</option>
  <option value="2">sunday</option>
  <option value="3">monday</option>
  <option value="4">tuesday</option>
  <option value="5">friday</option>
</select>
<input type="button" id="btnSelected" value="Get Selected" />
<button type="button" id="btn">+ Add Another Set OF Hourse
</button>

当我点击添加更多按钮时,我正在尝试做类似的事情,多选下拉菜单将被克隆。每当我点击提交时,它都会显示所有多选的选定值。

【问题讨论】:

  • 你必须添加一些引导多选链接..正确运行代码
  • cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/…" rel="stylesheet" type="text/css" />
  • 你的问题不够清楚!你能再描述一下吗?
  • 而新的下拉列表将只包含选定的值,对吧?

标签: javascript jquery html ajax twitter-bootstrap


【解决方案1】:

我添加了在单击添加按钮时克隆多选的功能。此外,我修改了选择方法以从所有多选下拉列表中获取所选值。

$('#days').multiselect({
  includeSelectAllOption: true
});

var i = 1;
$('#btnAddAnother').click(function(){
  var clone_multiselect = $("#days").clone();
  clone_multiselect.attr('id', 'days' + i);
  clone_multiselect.appendTo(".multiselect_container");

  $(clone_multiselect).multiselect({
    includeSelectAllOption: true
  });

  i++;
});
  
$('#btnGetSelected').click(function() {
  $('.results').empty();
  $('select.multiselect').each(function(){
    var id = $(this).attr('id');
    var selected_option_selector = '#' + id + ' option:selected';
    var result_str = '<b>' + id + '</b>: ';

    $(selected_option_selector).each(function(){
      result_str += $(this).text() + ' - ' + $(this).val() + ', ';
    });

    result_str = result_str.substring(0, result_str.length - 2);
    result_str += '<br />';
    $('.results').append(result_str);
  });
});
.results {
  margin-top: 20px;
}
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js"></script>

<div class="multiselect_container">
    <select id="days" class="multiselect" multiple="multiple">
      <option value="1">thusday</option>
      <option value="2">sunday</option>
      <option value="3">monday</option>
      <option value="4">tuesday</option>
      <option value="5">friday</option>
    </select>
</div>

<br />
<button id="btnGetSelected" class="btn btn-primary">Get Selected</button>
<button id="btnAddAnother" class="btn btn-primary">+ Add Another Set OF Hourse</button>

<div class="results"></div>

Fiddle DEMO

【讨论】:

  • @nab,这是你想要的吗?
  • 是的先生,这就是我想要的。谢谢,但我无法安排此代码,所以先生请帮我,我的电子身份证是 (nab92.06@gmail.com)
  • 排列是什么意思?
  • 我放了 jquery 和 html 代码,但它不能在 sn-p 中工作,所以我无法像你的实际代码那样正确安排代码。先生,请帮帮我。
  • 好的,您可以通过电子邮件 (parkash-kumar@hotmail.com) 将您的完整 HTML 代码发送给我吗?
猜你喜欢
  • 2016-12-17
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-12
相关资源
最近更新 更多