13

Simple_form、twitterブートストラップ、およびrails3.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入力にボタンタグを割り当てる方法について何かアイデアはありますか?

4

1 に答える 1

5

私は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');
    }
  }
});
于 2012-07-25T12:56:46.320 に答える