【问题标题】:How can a dropdown be stylized when using twitter bootstrap with simple_form in a Rails app?在 Rails 应用程序中使用带有 simple_form 的 twitter bootstrap 时,如何对下拉菜单进行样式化?
【发布时间】:2014-03-11 22:28:35
【问题描述】:

我正在使用 simple_form 和 twitter-bootstrap-rails gems。每件事都运行良好,但不知何故,下拉菜单并没有被 twitter bootstrap rails 风格化..它像正常形式一样显示。

<%= f.input :category, :collection => ["one", "two", "three", "four"],
    :input_html => {:class => 'dropdown'}, :label => 'Send To', prompt: "Choose From List" %>

显示下拉菜单的图片:

需要像在引导程序中一样的下拉图像

【问题讨论】:

  • 请分享代码。否则没有人可以帮助你
  • ["one", "two", "three", "four"],:input_html => { :class=> 'dropdown '}, :label => '发送至', 提示:“从列表中选择” %>
  • @RahulInsane 你的问题得到解决了吗? Kirti Thorat 建议的“.form-control”对于 Bootstrap 来说是正确的。

标签: ruby-on-rails ruby simple-form twitter-bootstrap-rails


【解决方案1】:

使用SimpleFormBootstrap 获得风格化下拉菜单的一种方法是使用Bootstrap-Select。它有一个Rails Gem;添加到您的 Gemfile 并执行 bundle:

gem 'bootstrap-select-rails'

你需要把它添加到你的样式表中

@import "bootstrap-select";

和Javascript。

//= require bootstrap-select

现在,您只需在现有的f.input 中使用input_html: {class: 'selectpicker'}

<%= f.input :category, :collection => ["one", "two", "three", "four"],
:input_html => {:class => 'selectpicker'}, :label => 'Send To', prompt: "Choose From List" %>

然后初始化 Javascript(无论你有多少选择器,都是一次性的):

<%= javascript_tag "$('.selectpicker').selectpicker();" %>

重新启动您的应用,您的输入下拉菜单应使用 Bootstrap 样式呈现。

一些可能有用的额外信息:您可以通过将disabled 类添加到项目来禁用提示项目,以便无法从下拉列表中选择它。我找不到关于 SimpleForm 如何将样式应用于集合的一个元素的任何指导,但我想出了以下所有此类提示:

<%= javascript_tag "$('li[data-original-index=0]').addClass('disabled');" %>

【讨论】:

    【解决方案2】:

    替换

    <%= f.input :category, :collection => ["one", "two", "three", "four"],:input_html => { :class => 'dropdown'}, :label => 'Send To', prompt: "Choose From List" %>
    

    <%= f.input :category, :collection => ["one", "two", "three", "four"],:input_html => { :class => 'form-control'}, :label => 'Send To', prompt: "Choose From List" %>
    

    .form-control 用于设置选择标签的样式。所有带有.form-control 的文本&lt;input&gt;, &lt;textarea&gt;, and &lt;select&gt; 元素都设置为宽度:100%;默认情况下。将标签和控件包裹在 .form-group 中以获得最佳间距。

    dropdown 不用于select 标签。查看详情here

    【讨论】:

    • kirti..it dint 仍然有效.. 我也更改了 .js 文件中的类名..
    • 一个简单的问题...类名会改变行为吗? ..因为它只会被认为是文本吗?
    • 类名必须存在,这就是选择的样式。
    • 所以基于类名样式改变,我们不能给任何随机类名,因为我给了“下拉”?我的理解对吗?
    • 根据其他帖子中的其他答案..我尝试在 //==bootstrap 之后更改 //== jquery 的优先级...但没有任何效果
    猜你喜欢
    • 2012-03-09
    • 2011-12-27
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多