как изменить класс метки для флажков в simple_form

используя simple_form, мы можем изменить класс метки, используя:

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

но как сделать то же самое при работе с флажками?

simple_form назначает класс по умолчанию collection_check_boxes

Есть ли способ изменить этот класс по умолчанию?


person Omnipresent    schedule 28.04.2011    source источник
comment
У меня работает на версии 2.0.2   -  person Noz    schedule 27.08.2012
comment
Подтверждено, это работает и для меня.   -  person Rob Sobers    schedule 25.04.2014


Ответы (6)


Я хотел обновить этот ответ на случай, если кто-то придет сюда в поисках способа сделать это, как я.

Вы можете присвоить ярлыку класс с помощью этой опции :item_wrapper_class => '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'
person flynfish    schedule 03.04.2012
comment
Спасибо за это Мэн .... очень ценю это. Это расстроило меня, а ты только что спас мой бекон. Очень признателен. - person marcamillion; 28.02.2013
comment
здорово, рад, что смог помочь! - person flynfish; 01.03.2013
comment
:item_wrapper_class добавляет класс, но как удалить текущий? simple_form добавляет класс 'checkbox-inline' - person Artur79; 22.05.2014
comment
label_html: {class: some_class} — еще один вариант, который может быть полезен - person frenesim; 17.01.2015
comment
Большое спасибо за этот ответ, @flynfish. Также есть метод для отдельной метки элемента: item_label_class: 'class-name' - person victorpolko; 17.06.2015
comment
item_label_class: «имя класса» работает для меня. Можно ли настроить эту опцию в файле инициализатора? - person user1066183; 27.09.2016
comment
спасибо! ':item_wrapper_class' можно использовать и для collection_check_boxes. - person ogelacinyc; 17.05.2017
comment
:item_wrapper_class и :item_label_class разные. Сначала устанавливается внешний класс тега span, который заключает в себе метку и флажок в начальной загрузке. Это было настолько полезно, что я потратил почти 2 часа, пытаясь добиться встроенных флажков с помощью simple_form. - person Anwar; 04.09.2017

Если вы хотите, вы можете передать new_class метке, выполнив что-то вроде:

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

Вы должны иметь возможность установить :input_html для ввода формы.

Что-то вроде:

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

ян.

person ipd    schedule 28.04.2011
comment
вступает в силу с <input type=checkbox class="myclass">, а не с <label class="collection_check_boxes"><input type=checkbox....></label> - person Omnipresent; 28.04.2011
comment
:label_html => { :class => "myclass" } в итоге работал на меня - person sicks; 06.10.2013

Это должно быть довольно прямолинейно, как упоминалось выше, нужно добавить :label_html => { :class => "myclass" }, чтобы добиться этого, например:

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

создаст и назначит атрибуты для стилей на метке флажка следующим образом:

введите здесь описание изображения

person d1jhoni1b    schedule 01.10.2019

Самый простой способ изменить класс метки для флажка — вставить следующее в /config/initializers/simple_form.rb или /config/initializers/simple_form_bootstrap.rb:

config.boolean_label_class = 'form-check-label'
person Ray Wojciechowski    schedule 03.01.2017

Чтобы получить класс метки, мне пришлось избавиться от автоматически сгенерированной метки и написать свою собственную.

это в рельсах 3 с простой формой 2.1, поэтому YMMV....

до:

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

после:

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