首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在加载的页面上创建多个select-2

如何在加载的页面上创建多个select-2
EN

Stack Overflow用户
提问于 2019-08-24 17:13:32
回答 1查看 54关注 0票数 1

我正在创建一个表单,允许我从数据库中添加项目,我可以添加我需要的项目数量。我也可以选择我要选择的项目的类型。

问题是,当我给按钮添加另一个项目,这个负载,但同时消除了其他选择的选择-2的功能。这是我的密码;

我使用jQuery和select-2和引导。

我尝试在页面加载后加载,但这不起作用;我将其设置为.onloaddocument

代码语言:javascript
复制
$('.select-dinamic').select2({ width: '100%' });
$("#button_new_equip").click(function(event) {
var select_buton='<div class="from-group  mt-1"><div class="row "><div class="col-3"><select class="select-dinamic col" name="" id="instrument0"><option value="qwqwqw">wewewewe</option></select></div><div class="col-8"><select class="select-dinamic col" name="" id="Tip"><option value="qwqwqw">wewewewe</option></select></div></div></div><br>'

  $("#Insp_instruments").append(select_buton)
  $('.select-dinamic').select2({ width: '100%' });
  /* Act on the event */
});

html
<div class="card container  ">
<div class="" id="Insp_instruments">
  <div class="from-group">
    <button type="button"id="button_new_equip" class="btn btn-primary "name="button"><i class="fas fa-plus"></i></button>
  </div>
<br>
        </div>
</div>
</div>

如果我尝试在表单中添加新的select2

前面的选择丢失了select2属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-24 17:51:00

对于运行时创建的所有新下拉列表,您都使用了静态id属性,即id="instrument0"id="Tip"

所以

  • 要么从html中删除id属性,它就能工作了。
  • 或者通过使用$('.select-dinamic').length添加计数器来使它们唯一

第二个选项更好地适应,您必须将两个select的ids更改为

  • id="instrument_' + $('.select-dinamic').length + '"
  • id="Tip_' + $('.select-dinamic').length + '"

见下面的工作演示

代码语言:javascript
复制
$("#button_new_equip").on('click', function(event) {
  var select_buton = '<div class="from-group  mt-1"><div class="row "><div class="col-3"><select class="select-dinamic col" name="" id="instrument_' + $('.select-dinamic').length + '"><option value="qwqwqw">wewewewe</option></select></div><div class="col-8"><select class="select-dinamic col" name="" id="Tip_' + $('.select-dinamic').length + '"><option value="qwqwqw">wewewewe</option></select></div></div></div><br>';

  $("#Insp_instruments").append(select_buton);
  $('.select-dinamic').select2({
    width: '100%'
  });

  /* Act on the event */
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.9/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.9/js/select2.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://kit.fontawesome.com/c08b275b91.js"></script>
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<div class="card container">
  <div class="" id="Insp_instruments">


    <div class="from-group">
      <button type="button" id="button_new_equip" class="btn btn-primary " name="button"><i class="fas fa-plus"></i></button>
    </div>

    <br>


  </div>

</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57640034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档