使用:
<%= f.label :registration,"Registration" %>
将创建一个标签:
<label for="cad_registration">Registration</label>
我希望它像这样一个跨度:
<span for="cad_registration">Registration</span>
答案 0 :(得分:3)
<span>
元素不支持for
- 属性。因此,使用<span>
- 元素而不是<label>
没有意义。
为什么不使用(CSS)样式将<label>
设置为所需的结果?
如果您只想设置此特定元素,请使用id
- 属性。
例如,使用以下内容将标签文本设为红色:
ERB:
<%= f.label :registration,"Registration", :html => { :id => "my-label" } %>
CSS:
#my-label {
text-color: red;
}
答案 1 :(得分:2)
您不是在创建标签,不应该使用label
帮助器。 for
元素上不存在<span>
属性。
将代码替换为您编写的底线,但没有for
:
<span>Registration</span>
答案 2 :(得分:2)
您可以使用自定义表单构建器来修改表单标签的输出方式。这里有一个简短的概述 - http://code.alexreisner.com/articles/form-builders-in-rails.html。关于这个主题还有一个Railscast更彻底,但这是一个专业(付费)剧集。
答案 3 :(得分:1)
我已经提出了以下解决方案,扩展了rails FormBuilder
在您的应用程序助手
中module ApplicationHelper
class TestFormBuilder < ActionView::Helpers::FormBuilder
include ActionView::Helpers::TagHelper
def span(name, options = {})
css_classes = []
css_classes = options[:class].to_s if options[:class]
content_tag('span', name, :class => css_classes.join(' '))
end
end
end
在您的视图中,您可以使用
<%= form_for @<module>, :builder => ApplicationHelper::TestFormBuilder do |f| %>
#your code
<%= f.span(:name) %>
<% end %>
这可以解决这个问题,这让我想到了扩展FormBuilder;),
这些链接帮助了我link1,link2,您可能想要进行更多修改
HTH
答案 4 :(得分:0)
只记下红宝石外的跨度
<span for=<%= :registration %>><%="Registration"%></span>