how to change class of a label for checkboxes in simple_form

青春壹個敷衍的年華 提交于 2019-11-27 20:52:21

问题


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? %>



回答6:


This should be pretty straight forward like mentioned above one should add :label_html => { :class => "myclass" } in order achieve this, for instance:

= f.input :remember_me, as: :boolean, :input_html => { :class => 'kt-checkbox kt-mock-span' }, :label_html => { :class => "kt-login-checkbox-label" }

will create and assign the attributes for the styles on the checkbox's label like this:



来源:https://stackoverflow.com/questions/5812325/how-to-change-class-of-a-label-for-checkboxes-in-simple-form

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!