使用切换按钮代替复选框(Rails,Twitter Bootstrap,Simple_form)

时间:2012-04-14 20:04:42

标签: ruby-on-rails twitter-bootstrap simple-form

我正在使用Simple_form,twitter bootstrap和rails 3.2.2

有没有人知道是否有办法在simple_form中的布尔字段上使用“切换按钮”选项进行引导?我想用按钮替换复选框。

以下是我目前在表格(rails)中尝试过的内容:

<%= 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输入分配按钮标记的任何想法?

1 个答案:

答案 0 :(得分:6)

我已经提出了一种基于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');
    }
  }
});