使用simple_form_for gem创建以下HTML的最佳方法是什么?
<label>
<input name="form-field-radio" type="radio" />
**<span class="lbl"> radio option 2</span>**
</label>
请注意,默认情况下,当我使用以下语句创建单选按钮时,不会创建上述语句。如何在?
中添加该标签<%= f.input :state, :collection => Project::STATES, :as => :radio_buttons %>
答案 0 :(得分:1)
我有类似的需求(在<span>
中嵌入<label>
。它不是最干净的解决方案,但确实有效,我认为通过一些调整,它可以让您将输入和跨度嵌入标签中。以下修改导致:
<label>Name:
<span class="hint">this is a hint...</span>
</label>
我添加了以下内容作为初始化程序(使用rails 4和simple_form 3)来覆盖label_text方法:
# initializers/simple_form_custom.rb
module SimpleForm
module Components
module Labels
def label_text
if hint
hint_text = %[<span class="hint">#{hint}</span>]
else
hint_text = ""
end
SimpleForm.label_text.call(raw_label_text, required_label_text, hint_text).strip.html_safe
end
end
end
end
然后在initializers/simple_form.rb
我有:
config.label_text = lambda { |label, required, hint| "#{label}: #{required} #{hint}" }