Подтвердить что ты не робот

Использование кнопок Toggle вместо флажков (Rails, Twitter Bootstrap, Simple_form)

Я использую Simple_form, twitter bootstrap и rails 3.2.2

Кто-нибудь знает, есть ли способ использовать кнопку "toggle button" для бутстрапа в логических полях в simple_form? Я хотел бы заменить флажки кнопками.

Вот что я пробовал до сих пор в форме (рельсы):

<%= f.input :client_approved, :input_html => { :class => 'btn btn-primary', :data => {:toggle => 'button'} } %>

Вот вывод HTML:

<input class="boolean optional btn btn-primary" data-toggle="button" id="id_card_design_client_approved" name="id_card_design[client_approved]" type="checkbox" value="1">

Любые идеи о том, как назначить тег кнопки для входа simple_form?

4b9b3361

Ответ 1

Я придумал подход на основе JS... Я уверен, что это не самый приятный способ сделать это, но он работает...

В вашем файле просмотра добавьте что-то по строкам:

<div id="client_approved_buttons" class="btn-group" data-toggle="buttons-radio">
  <%= f.input : client_approved, as: :hidden %>
  <a class="btn" data-value="1">Yes</a>
  <a class="btn" data-value="0">No</a>
</div>

Затем в вашем JS файле добавьте следующее:

// make button toggles update hidden field
$('.btn-group a').on('click', function(event){
  event.preventDefault();
  var input = $(this).siblings('.control-group').find('input[type=hidden]');
  if(input.length>0){
    if(input.val().toString() !== $(this).data('value').toString()){
      input.val($(this).data('value')).trigger('change');
    }
  }
});