在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认为它比我聪明并默认标签。如果我没有特别提供标签,我希望它能做到这一点!
答案 0 :(得分:0)
您是否尝试完全删除输入中的:label
属性,而是使用form.label
作为空标签。
http://apidock.com/rails/ActionView/Helpers/FormHelper/label
您可以使用CSS定位复选框,而不是使用空标签。
答案 1 :(得分:0)
尝试将:label
值设为false
。
UPDATE:由于SimpleForm应该依赖ActionView来呈现元素,因此您可以使用这种hackish解决方案:将locale文件中的标签设置为空字符串,就像这样
en:
activerecord:
attributes:
model_name_underscored:
sticky: ' '
答案 2 :(得分:0)
遇到类似的麻烦。在您的表单默认情况下,只需执行以下操作:
defaults: { :label => 'blanklabel', label_html: { class: 'blanklabel'}
然后在CSS中,只需将标签文本颜色设置为白色:
.blanklabel { color: white; }