【发布时间】:2012-12-13 15:23:15
【问题描述】:
我在我的user.rb 模型中使用validates_acceptance_of :terms, :message => "must be accepted",并且正在使用bootstrap-sass。
我的复选框代码在视图中如下所示:
<div class="control-group">
<%= f.label :terms, :class => "control-label" do %>
Accept <%= link_to('Terms of Use *', "#myTOUModal", :"data-toggle" => "modal") %>
<% end %>
<div class="controls">
<%= f.check_box :terms %>
</div>
</div>
由于某种原因,当提交表单时未选中条款复选框时,表单顶部会显示相应的错误消息,但 field_with_errors div 类环绕复选框存在问题标签。
渲染页面的 HTML 如下所示:
<div class="control-group">
<label class="control-label" for="user_terms">
Accept <a href="#myTOUModal" data-toggle="modal">Terms of Use *</a>
</label>
<div class="controls">
<input name="user[terms]" type="hidden" value="0" />
<div class="field_with_errors">
<input id="user_terms" name="user[terms]" type="checkbox" value="1" />
</div>
</div>
</div>
结果是复选框字段标签在出错时未突出显示。有没有办法强制 field_with_errors 类的 div 标签放置在 <div class="control-group"> 标签之后显示?为什么使用块定义字段标签会导致 field_with_errors 标记放置失效?有人有这方面的经验吗?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 forms label