引导多选列表不会为 Rails 打开

Posted

技术标签:

【中文标题】引导多选列表不会为 Rails 打开【英文标题】:Bootstrap multi select list doesn't open for Rails 【发布时间】:2019-12-02 16:10:53 【问题描述】:

多选表单正在正确呈现,但它只显示第一个未选择的选项。当我点击它时,它没有显示可供选择的技能列表。

我已经安装了 bootstrap-multiselect-rails gem。我已将 *= require bootstrap-multiselect 添加到 application.css 和 //= require bootstrap-multiselect 到 application.js。

tasks/new.html.erb

<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>


<script type="text/javascript" src="js/bootstrap-multiselect.js"></script>
<link rel="stylesheet" href="css/bootstrap-multiselect.css" type="text/css"/>

<script type="text/javascript">
    $(document).ready(function() 
        $('#example-getting-started').multiselect();
    );
</script>

<div class="container">
<h2>Create Task</h2>
<%= form_for(@task) do |f| %>

  <div class="space">
  <p>Skills:</p>
  </div>
  <div class="space">
    <label id="example-getting-started"">
        <%= f.collection_select :skill_ids, @skills, :id, :name, include_blank: true, multiple: true %>
    </label>
  </div>


  <%= f.submit "Post", class: "btn button" %>
<% end %>
</div>

【问题讨论】:

@skills 中有什么内容?听起来可能是空的 技能是一个模型。 @skills 是技能列表。不加bootstrap多选脚本的时候可以看到所有技能。 【参考方案1】:

&lt;label id="example-getting-started""&gt;

您在标签上调用多选,您需要在select 元素上调用它。找出它的 ID 并对其调用 multiselect。

【讨论】:

好的。我尝试将其更改为 但现在 rails throws错误说明参数数量错误(给定 7,预期 4..6) collection_select 不是这样工作的。 ID 将是一个 HTML 选项,因此您需要将其添加到 html 选项哈希中。试试这个:&lt;%= f.collection_select :course_ids, @courses, :id, :name, include_blank: true, multiple: true, id: "example-getting-started" %&gt; 当您将它添加到选择时,您是否从标签中删除了该 ID?您还可以确认选择实际上在检查器中具有该 ID 并且没有控制台错误吗? 我确实删除了 ID。但是控制台说我添加的文件没有找到 [错误] 加载资源失败:服务器响应每个链接和脚本的状态为 404(未找到)

以上是关于引导多选列表不会为 Rails 打开的主要内容,如果未能解决你的问题,请参考以下文章

流程上的引导多选更新选项列表

Bootstrap 多选下拉菜单,在 Rails 上带有搜索栏

尝试更改引导选择多选下拉列表中的选定指示器图标

基于第一个下拉菜单的引导多选动态选项

从外部按钮打开引导下拉菜单

Datepicker 不会在引导模式中打开