我有一个用于过滤记录的集合。不幸的是,引导程序样式不起作用。
= collection_radio_buttons :ptype, :id, Ptype.all, :id, :part_type, {:checked => session[:ptype_id]}, {:onchange => "ptype_set(value)", :class => "radio-inline"}
正在制作这个......
<input checked="checked" class="radio-inline" id="ptype_id_1" name="ptype[id]" onchange="ptype_set(value)" type="radio" value="1" />
<label for="ptype_id_1">Welded</label>
<input class="radio-inline" id="ptype_id_2" name="ptype[id]" onchange="ptype_set(value)" type="radio" value="2" />
<label for="ptype_id_2">Laser/Formed</label>
<input class="radio-inline" id="ptype_id_3" name="ptype[id]" onchange="ptype_set(value)" type="radio" value="3" />
<label for="ptype_id_3">Bolt_on</label>
<input class="radio-inline" id="ptype_id_4" name="ptype[id]" onchange="ptype_set(value)" type="radio" value="4" />
<label for="ptype_id_4">Machined</label>
<input class="radio-inline" id="ptype_id_5" name="ptype[id]" onchange="ptype_set(value)" type="radio" value="5" />
<label for="ptype_id_5">Empty</label>
在bootstrap documentation中,它表明class="radio-inline"
应该是label
的一部分,而不是input
的一部分(如下所示)。
<input checked="checked" id="ptype_id_1" name="ptype[id]" onchange="ptype_set(value)" type="radio" value="1" />
<label for="ptype_id_1" class="radio-inline">Welded</label>
这个集纯粹被用作激活Javascript进行过滤的选择器,因此我不需要将它嵌套在form_for
中。但是,我甚至试过了,但它也没有用。
有没有办法让class="radio-inline"
进入标签标签?
答案 0 :(得分:2)
你好运:collection_radio_buttons
accepts a block and you can pass a builder object to it。该构建器上的label
和radio_button
方法接受HTML选项哈希参数和块,您可以使用text
方法获取实际的选项标签文本。在Slim你可以试试这个:
= collection_radio_buttons :ptype, :id, Ptype.all, :id, :part_type do |b|
= b.label(:class => 'radio-inline') { b.radio_button(:checked => session[:ptype_id], :onchange => 'ptype_set(value)') + b.text }
对于内联单选按钮,Bootstrap希望输入嵌套在标签内。这将以您期望的方式呈现您的单选按钮。享受!