how to change class of a label for checkboxes in s

2019-01-22 17:43发布

问题:

using simple_form we can change class of a label using:

label_html => {:class => "myclass"}

but how do we do the same when dealing with checkboxes?

simple_form assigns the default class of collection_check_boxes

Is there a way to change this default class?

回答1:

I wanted to give an update to this answer in case someone comes here looking for a way to do this as I did.

You can give the label a class with this option :item_wrapper_class => 'class_goes_here'

Here is a full example:

= 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'


回答2:

If you want you can pass new_class to the label doing something like:

<%= f.collection_check_boxes attribute, collection, value_method, text_method do |b| 
      b.label(class: 'new_class') {b.check_box + b.text}
end %>


回答3:

You should be able to set :input_html on your form input.

Somthing like:

f.input :something, :as => :check_box, :input_html => { :class => "myclass" }

ian.



回答4:

The easiest way to change the label class for a checkbox is to insert the following in /config/inititializers/simple_form.rb or /config/initializers/simple_form_bootstrap.rb:

config.boolean_label_class = 'form-check-label'


回答5:

To get the label class I had to get rid of the auto-generated label and write my own.

this is in rails 3 with simple form 2.1 so YMMV....

before:

<%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>

after:

<%= f.label :remember_me, :class => 'remember-me' %>
<%= f.input :remember_me, :label => false, :as => :boolean if devise_mapping.rememberable? %>