我有一个用户输入信用卡数据的形式的这个形式字段:
<%= form.input :credit_card_type, :as => :radio, :collection => User.credit_card_types %>
User.credit_card_types看起来像这样:
def self.credit_card_types
{'Visa' => VISA, 'Master Card' => MASTER_CARD, 'American Express' => AMERICAN_EXPRESS}
end
哪位给我以下html:
<li id="user_credit_card_type_input" class="radio optional">
<fieldset>
<legend class="label">
<label>Tipo de tarjeta</label>
</legend>
<ol>
<li>
<label for="user_credit_card_type_1">
<input type="radio" value="1" name="user[credit_card_type]" id="user_credit_card_type_1"> Master Card
</label>
</li>
<li>
<label for="user_credit_card_type_0">
<input type="radio" value="0" name="user[credit_card_type]" id="user_credit_card_type_0"> Visa</label>
</li>
<li>
<label for="user_credit_card_type_2">
<input type="radio" value="2" name="user[credit_card_type]" id="user_credit_card_type_2"> American Express</label>
</li>
</ol>
</fieldset>
</li>
鉴于此,我的问题是,如何为每个单选按钮标签添加特定的背景图像?我不能用CSS做,因为标签没有任何id,我不能(或者我不知道如何)把它放到那里。我试图添加一个image_tag,但它逃脱了html。有什么建议吗?
答案 0 :(得分:1)
Formtastic可根据您的需求进行定制。您应该能够在config / initializers中找到Formtastic配置文件。添加如下这样的一行:
Formtastic::SemanticFormHelper.builder = SemanticCustomFormBuilder
然后在lib目录中创建一个名为semantic_custom_form_builder.rb的文件
class SemanticCustomFormBuilder < Formtastic::SemanticFormBuilder
def cicloon_special_radio_button_input
#define your radiobuttons here
end
end
您可以在表单中使用这样的自定义定义:
<%= form.input :credit_card_type, :as => :cicloon_special_radio_button %>