0

使用 :

 <%= f.label :registration,"Registration" %>

将创建一个标签:

<label for="cad_registration">Registration</label>

我希望它是这样的跨度:

<span for="cad_registration">Registration</span>

4

5 回答 5

3

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;
}
于 2012-12-31T09:32:56.167 回答
2

那么你没有创建标签,你不应该使用label帮助器。for元素上不存在该属性<span>

用您编写的底线替换您的代码,但没有for

<span>Registration</span>
于 2012-12-31T09:28:00.780 回答
2

您可以使用自定义表单构建器来修改表单标签的输出方式以满足您的要求。这里有一个简短的概述 - http://code.alexreisner.com/articles/form-b​​uilders -in-rails.html 。还有一个关于这个主题的Railscast,它更彻底,但它是专业(付费)剧集。

于 2012-12-31T09:31:24.393 回答
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 ;),

这些链接帮助了我link1link2,你可能想做更多的修改

高温高压

于 2012-12-31T10:22:07.307 回答
0

just write down the span outside the ruby

<span for=<%= :registration %>><%="Registration"%></span>
于 2012-12-31T09:35:09.467 回答