我正在使用Rails
& Simple_form
对模型进行验证。在表单中,我有几个单选按钮集合。
对于每个单选按钮,我隐藏了实际按钮并添加了font awesome
图标。我已经尝试使用f.collection_radio_buttons
并将simple_form f.input
标记替换为原本会生成的纯HTML。但是,在表单验证之后,我只能获取要返回的值以及在我坚持这种格式时显示的错误消息:
<%= f.input field_value, label: false, as: :radio_buttons, collection: [1,2,3,4,5] %>
似乎我对默认单选按钮所做的几乎所有更改都会导致它从表单验证流程中排除。但是正确地发送了值。
基本上,表单有效,即使在验证失败后,也会保留值。出现了什么问题是没有显示错误消息,并且值没有放回到他们的字段中,因此它们不可见
基本上我想要的是一个令人难以置信的图标而不是单选按钮,我感觉很多人之前已经做过这样的事情,但我似乎无法在网上找到很多资源。
以下是我正在尝试的HTML / ERB的粗略示例。使用此表单可以显示图标,并且在验证失败后重新呈现表单之前,所有图标都显得非常好。然后将值加载回字段,但不会显示这些字段。任何验证错误也不会显示。
<div class="form-group radio_buttons required rating_<%= field_value.to_s %>">
<input type="hidden" name="rating[<%= field_value.to_s %>]" value="">
<% (1..5).to_a.each do |number| %>
<span class="radio">
<label for="rating_<%= field_value.to_s %>_<%= number %>" id="<%= number %>" data-target=".rating_<%= field_value.to_s %>">
<input class="radio_buttons optional" type="radio" value=<%= number %> name="rating[<%= field_value.to_s %>]" id="rating_<%= field_value.to_s %>_<%= number %>">
<i class="fa fa-star fa-2x"></i>
</label>
</span>
<% end %>
</div>