2012-12-31 60 views
0

標籤使用:使用範圍,而不是在軌

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

將創建一個標籤:

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

我希望它是這樣一個跨度:

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

+0

那麼不要'f.label',寫一個跨度呢? –

回答

3

<span>元素不支持for-屬性。因此,使用<span> -element而不是<label>沒有任何意義。

爲什麼不使用(CSS)樣式將<label>設置爲期望的結果? 如果您只想對此特定元素進行樣式設置,請使用id-屬性。

例如使標籤文本顯示爲紅色,使用這樣的事情:

ERB:

<%= f.label :registration,"Registration", :html => { :id => "my-label" } %> 

CSS:

#my-label { 
    text-color: red; 
} 
+0

我想我需要問我的設計師使用標籤而不是跨度:)。 –

+0

如果你需要一個表格字段的'label'':是的! :) – Veger

2

你不是創建一個標籤,那麼你不應該使用th e label幫手。 屬性在<span>元素上不存在。

你寫的底線,但沒有for替換代碼:

<span>Registration</span> 
2

您可以使用自定義表單生成器來修改表單標籤如何輸出到您的要求。這裏有一個簡要概述 - http://code.alexreisner.com/articles/form-builders-in-rails.html。這個主題也有一個Railscast,這個主題更透徹,但是它是一個專業(付費)的集。

+1

不允許有一個包含'for'屬性的''元素。因此,創建自定義表單生成器並不能解決問題... – Veger

0

只是寫下跨度紅寶石外

<span for=<%= :registration %>><%="Registration"%></span> 
+0

不允許有一個'' - 元素包含'for'屬性。因此,創建自定義表單生成器並不能解決問題... – Veger

1

我想出了以下解決方案,延長了鐵軌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和y ou可能想做一些更多的修改

HTH

+0

非常感謝您的時間和答案..我會檢查它。這是一個不錯的主意。 –