如何初始化具有相同类的页面上的所有 Select2 下拉菜单

Posted

技术标签:

【中文标题】如何初始化具有相同类的页面上的所有 Select2 下拉菜单【英文标题】:how to initialize all Select2 dropdowns on a page with the same class 【发布时间】:2014-12-05 00:17:24 【问题描述】:

我正在使用来自http://ivaynberg.github.io/select2/的Select2

现在我正在像这样初始化下拉菜单:

 <script>
 $(document).ready(function()  

 $('.form_control').select2(
     minimumResultsForSearch: -1
 );

  );
 </script>

问题是,我有一个页面,我在其中动态生成基于下拉菜单的订单,所以我将在同一页面上有多个具有相同类的下拉列表和表单,如下所示:

<select id="order_status" class="form-control" name="order_status">

<option value="">Option 1</option>
<option value="">Option 2</option>

</select>

当我这样做时,第一个下拉菜单初始化正常,但同一页面上的所有其他下拉菜单都没有。如何让它初始化所有 form_control 下拉菜单?

JSFiddle:http://jsfiddle.net/hryoy8rc/1/

【问题讨论】:

顺便说一下,我可以为下拉菜单分配唯一的 ID,但它们可以是 000001 到 683935 之间的任何位置,所以这也不是一个好的选择。 JSFiddle: jsfiddle.net/hryoy8rc/1 【参考方案1】:

它是当前版本中的一个错误,我在使用 4.0.0 时遇到了同样的问题,它将解决您的问题: https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js

【讨论】:

【参考方案2】:

在下面试试我的代码...

$('.form_control').each(function(index, element) 
    $(this).select2(
        minimumResultsForSearch: -1
    );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="order_status" class="form-control" name="order_status">

<option value="">Option 1</option>
<option value="">Option 2</option>

</select>

来自维也纳的问候

【讨论】:

【参考方案3】:

我最终为每个下拉列表提供了一个动态生成的 ID,例如 drop_003,然后在正文中初始化它,如下所示:

<script>
$('#drop_003').select2(
minimumResultsForSearch: -1
);
</script>

【讨论】:

【参考方案4】:

我正在使用 Select2 4.0.2 版本,这个 sn-p 对我有用。它将页面中的所有选择元素初始化为Select2。

$(document).ready(function () 
   $('select').select2();
);

【讨论】:

【参考方案5】:

为了动态生成框,我不得不实际循环选项而不是使用帮助器。

解决办法:

$('.myselect').select2();    
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
<form action="" method="POST" role="form">
    <p> working boxes </p>   

    <select class="form-control myselect">
      <option>Service 1</option>
      <option>Service 2</option>
    </select>
    <br>
    <br>
    <select class="form-control myselect">
      <option>Service 1</option>
      <option>Service 2</option>
    </select>
    
</form>

【讨论】:

以上是关于如何初始化具有相同类的页面上的所有 Select2 下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何 301 将所有页面重定向到新域上的相同页面

Select2 应用引导输入-lg

如何在具有 2 个 jQuery 版本的页面/站点上使用 select2

如何从具有相同类的页面中的两个表中提取数据?

jQuery - 如果所有子元素都具有相同的类,则将附加类添加到页面上的另一个元素

如何使用 select2.js