据我所知,对于之前遇到此问题的人来说,我的问题应该很容易回答......
我在 Rails 中有一个注册表单,它应该突出显示单击提交按钮时未正确完成的字段(它还应该显示相关的错误消息)。该表单仅包含输入字段和一个复选框。虽然表单的每个部分都正确显示了错误,但当用户尝试在未选中复选框的情况下提交表单时,复选框标签未正确突出显示为红色。
当复选框未选中时,我应该在我的代码中修改什么以突出显示复选框标签?
这是视图代码:
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Password confirmation" %>
<%= f.password_field :password_confirmation %>
<br>
<%= f.check_box :terms_of_service %>
<label_for="user_terms_of_service">I agree to the <%= link_to "Terms of Service", policies_path %>
</label>
<br><br>
<%= f.submit "Create my account", :class => "btn btn-large btn-primary" %>
<% end %>
此外,这是我在表单提交不正确后使用 Firebug 看到的复选框 - 问题是带有 class="field_with_errors" 的 div 放在复选框标签之前。
<br>
<input type="hidden" value="0" name="user[terms_of_service]">
<div class="field_with_errors">
<input id="user_terms_of_service" type="checkbox" value="1" name="user[terms_of_service]">
</div>
<label_for="user_terms_of_service">
谢谢你的帮助,亚历山德拉