select2 多选不起作用

Posted

技术标签:

【中文标题】select2 多选不起作用【英文标题】:select2 multiple select does not work 【发布时间】:2013-07-12 17:27:17 【问题描述】:

我想要做的是先让用户选择一个组合类型(例如 3 个项目组合或 2 个项目组合),然后让他们在第二个选择中选择项目。因此,第二个选择是多选,允许用户选择 2 或 3 个项目。

我正在使用带有多个选项的 select2。但它没有用。它说选项 'multiple' 在 Select2 附加到元素时是不允许的。 谁能帮我用 select2 完成这项工作?

<script type="text/javascript">
$(document).ready(function() 
  $('select#box_name').change(function() 
    var dish_id = $(this).find('option:selected').val();
    $.read(
      '/dishes/dish_id/get_assoc_items.json',
       dish_id: dish_id ,
      function (data) 
        var options = ''
        $.each(data, function(idx, item) 
          options = options + '<option value="'+item.id+'">'+item.name+'</option>'
        );
        var select = $('select#box_assoc_items')
        $('option', select).remove();
        select.append(options);
      
    );
  );
);

$(document).ready(function() 
  $('select#box_assoc_items').select2(
    placeholder: 'choose items',
    multiple: true
  );
);
</script>

<%= simple_form_for([@restaurant, @order, @box]) do |f| %>
  <%= f.input :name, :collection => @dishes %>
  <%= f.input :assoc_items, :collection => [[]], :input_html => :maxlength => 2, :style => 'width:400px' %>
  <%= f.input :price %>
  <%= bootstrap_button(f, "Add a dish") %>
<% end %>

【问题讨论】:

【参考方案1】:

不能对选择元素应用多个,必须使用隐藏元素。

<input type="hidden" id="question" name="question" style="width: 70%;">

【讨论】:

感谢迭戈。我意识到。我知道这将是一个不同的话题,但想知道你是否知道答案。现在我必须在 select2 中获取 json 响应。因为在 '/dishes/dish_id/get_assoc_items.json' 中,dish_id 需要由之前的 select 填充。如何从之前的选择中获取选定的值? 那我怎么添加选项呢?【参考方案2】:

@Diego 的回答对我没有帮助,但这个有我的案例的人可能会帮助遇到同样问题的人:

How to implement multi select in a independent table in Rails?

【讨论】:

以上是关于select2 多选不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使 select2 多选不换行到多行

GridView 中的全选不起作用

select2插件多选不换行

jsp jquery select2多选不换行

在我追加新行后,select2 不起作用

maximumSelectionSize 在 Select2 中不起作用