【问题标题】:Make simple_form honor my blank/empty label让 simple_form 尊重我的空白/空标签
【发布时间】:2014-02-12 05:26:47
【问题描述】:

在 Rails 3.2.13 应用程序中使用 simple_form v2.1.0。我有一个 simple_form,我希望在其中显示一个带有内联标签的复选框,并且我希望有一个“空”的普通标签。这样,标签的容器应该保持在原位,并且复选框将与其他表单元素正确定位。

如果我设置:label => "":label => " ":label => nil 或根本不提供:label,我最终将字段名称作为标签。

如果我设置:label => false,标签和包含的元素根本不会呈现(因此复选框出现在页面的最左侧)。

如果我设置:label => " ",我最终会得到文字文本 ,正如预期的那样。

似乎没有办法告诉简单表单将标签留在那里,只是不要在其容器中放置任何文本。

这是一个示例表单,我正在尝试为带有内联标签的复选框设置一个空标签。

<%= simple_form_for @model ... %>
    <%= f.input :sticky, :label => "", :inline_label => "Sticky?", :as => :boolean ... %>
<% end %>

但 simple_form 认为它比我更聪明,并默认使用标签。如果我没有专门提供标签,我希望它只这样做!

【问题讨论】:

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


    【解决方案1】:

    尝试将:label 的值设置为false

    更新: 由于 SimpleForm 应该依赖 ActionView 来呈现元素,因此您可以使用这种 hackish 解决方案:将您的语言环境文件中的标签设置为空字符串,如下所示

    en:
      activerecord:
        attributes:
          model_name_underscored:
            sticky: ' '
    

    【讨论】:

    • 我以为我涵盖了,但显然没有!用那个例子更新了我的问题。这会导致标签和包含元素根本不呈现,因此复选框显示在页面的最左侧。
    【解决方案2】:

    您是否尝试过完全删除输入中的:label 属性,而是使用form.label 作为空标签。

    http://apidock.com/rails/ActionView/Helpers/FormHelper/label

    您可以使用 CSS 定位复选框,而不是使用空标签。

    【讨论】:

    • 这会将标签拉到“行”之外,因此它现在会出现在页面最左侧的复选框上方。我意识到我可以通过手动添加标签元素等来解决这个问题。但我认为这应该按原样工作(如果我提供“”标签,就照我说的做)。我打算报告这个问题,但想确保我没有做错什么。现在我只是不会使用内联标签。
    【解决方案3】:

    遇到了类似的问题。在您的表单默认值中,只需执行以下操作:

    defaults: { :label =&gt; 'blanklabel', label_html: { class: 'blanklabel'}

    然后在您的 CSS 中,将标签文本颜色设置为白色:

    .blanklabel { color: white; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 2012-03-02
      • 1970-01-01
      • 2013-02-04
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多