我使用Simple_form,twitter bootstrap和rails 3.2.2
@H_502_2@有没有人知道有没有办法使用“toggle button”选项来引导在simple_form中的布尔字段?我想用按钮替换复选框.
@H_502_2@这是我迄今为止尝试过的形式(rails):
@H_502_6@<%= f.input :client_approved,:input_html => { :class => 'btn btn-primary',:data => {:toggle => 'button'} } %>
@H_502_2@这是HTML输出:
@H_502_6@<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">
@H_502_2@关于如何将一个按钮标签分配给simple_form输入的任何想法?
解决方法
我已经提出了一个基于JS的方法…我确定这不是最好的方法,但它的作品…
@H_502_2@在您的视图文件中,添加以下内容:
@H_502_6@<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>
@H_502_2@然后在你的JS文件中添加:
@H_502_6@// 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');
}
}
});