使用simple_form如何在这些内部标签和外部标签上获得此类?

时间:2013-02-27 23:29:03

标签: css ruby-on-rails ruby-on-rails-3 simple-form

所以这是我想要得到的结果:

<div class="control-group">
  <label class="control-label" for="ListingType">Listing Type:</label>
  <div class="controls">
    <label class="inline"><input type="radio" name="ListingType"> For Sale</label>
    <label class="inline"><input type="radio" name="ListingType"> For Rent</label>
  </div>
</div>

我试过了:

<%= f.association :listing_type, label: "Listing Type: ", as: :radio_buttons, input_html: { class: 'inline'} %>       

这是产生的:

<div class="control-group radio_buttons optional">
   <label class="radio_buttons optional control-label">Listing Type:</label>
   <div class="controls">
      <label class="radio"><input class="radio_buttons optional inline" id="listing_listing_type_id_1" name="listing[listing_type_id]" type="radio" value="1" />For Sale</label>
      <label class="radio"><input class="radio_buttons optional inline" id="listing_listing_type_id_2" name="listing[listing_type_id]" type="radio" value="2" />For Rent</label>
  </div>
</div>  

请注意label.class="radio"而不是label.class="inline"

这是我想要做的主要事情。

我尝试了label_html: { class: 'inline' }并产生了这个:

<div class="control-group radio_buttons optional">
   <label class="radio_buttons optional control-label inline">Listing Type:</label>
   <div class="controls">
     <label class="radio"><input class="radio_buttons optional" id="listing_listing_type_id_1" name="listing[listing_type_id]" type="radio" value="1" />For Sale</label>
     <label class="radio"><input class="radio_buttons optional" id="listing_listing_type_id_2" name="listing[listing_type_id]" type="radio" value="2" />For Rent</label>
   </div>
</div>  

即。它将班级inline移动到最外面的<label>,而不是每个单选按钮的label

思想?

2 个答案:

答案 0 :(得分:2)

只需将how to change class of a label for checkboxes in simple_form的@flynfish回复复制到此主题。似乎是@marcamillion在这里发表的评论。

  

您可以使用此选项为标签指定一个类:item_wrapper_class =&gt;   'class_goes_here'

     

以下是一个完整的例子:

= user.input :resident, 
         :collection => [["In the U.S", true],["Outside the U.S.", false]], 
         :label_method => :first, 
         :value_method => :last,
         :as => :radio_buttons, 
         :label => "Where is your principle residence?",
         :item_wrapper_class => 'inline'

答案 1 :(得分:0)

@moonfly的答案不再适用于当前版本的simple_form(我已尝试过3.3.1版本)。

要更改每个单选按钮标签的类别,您必须使用item_label_class选项,如下所示:

<%= f.association :listing_type, label: "Listing Type: ", as: :radio_buttons, item_label_class: 'inline' %>

或者来自@ moonfly的答案:

= user.input :resident, 
     :collection => [["In the U.S", true],["Outside the U.S.", false]], 
     :label_method => :first, 
     :value_method => :last,
     :as => :radio_buttons, 
     :label => "Where is your principle residence?",
     :item_label_class => 'inline'

item_wrapper_class将修改每个单选按钮范围的类,以用于较新版本的simple_form。