使用 :
<%= f.label :registration,"Registration" %>
将创建一个标签:
<label for="cad_registration">Registration</label>
我希望它是这样的跨度:
<span for="cad_registration">Registration</span>
使用 :
<%= f.label :registration,"Registration" %>
将创建一个标签:
<label for="cad_registration">Registration</label>
我希望它是这样的跨度:
<span for="cad_registration">Registration</span>
The <span>
element does not support the for
-attribute. So, using a <span>
-element instead of the <label>
does not make sense.
Why do you not use (CSS) styles to style the <label>
into the desired result?
Use the id
-attribute if you only want to style this particular element.
For example to make the label text red, using something like this:
ERB:
<%= f.label :registration,"Registration", :html => { :id => "my-label" } %>
CSS:
#my-label {
text-color: red;
}
那么你没有创建标签,你不应该使用label
帮助器。for
元素上不存在该属性<span>
。
用您编写的底线替换您的代码,但没有for
:
<span>Registration</span>
您可以使用自定义表单构建器来修改表单标签的输出方式以满足您的要求。这里有一个简短的概述 - http://code.alexreisner.com/articles/form-builders -in-rails.html 。还有一个关于这个主题的Railscast,它更彻底,但它是专业(付费)剧集。
我提出了以下解决方案,扩展了 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,你可能想做更多的修改
高温高压
just write down the span outside the ruby
<span for=<%= :registration %>><%="Registration"%></span>