我有这样的表格:
<%= form_for(@building_shared_space, data: {abide:''}) do |f| %>
...
<div class="field">
<%= f.label :room_type, 'Room Type' %>
<%= f.text_field :room_type, placeholder: 'Room Type', required: '' %>
<%= content_tag(:small, 'Please enter a room type', class: 'error') %>
</div>
<div class="field">
<%= f.label :description %>
<%= f.text_field :description %>
</div>
<div class="field">
<%= f.label :default -%>
<%= f.check_box :default %>
</div>
...
当我提交时,它会正确突出显示并在房间类型旁边显示警告。但是,它也会使其他表单标签变为红色。为什么会这样?
我正在使用Foundation和Rails 4。
答案 0 :(得分:0)
为了使<small class="error">
... </small>
有效,它必须是输入的兄弟。虽然它可能看起来像将放在之后的输入,这将是一个兄弟,但是代码会影响所有兄弟姐妹。 (这在20/20后视中是有意义的。)
文档的措辞可以解释(特别是在很少睡眠的情况下)包裹<div>
仅仅是为了示例。但是,必须具有输入控件的父元素和错误消息。 <DIV>
效果非常好。
自定义命名模式代码示例实际上不显示包装元素。公平地说,它也不会显示错误消息元素。但这可能会误导人们认为包装<div>
是多余的,只是为了解释发生了什么,而不是在DOM中制作正确的树结构以隔离验证行为的必要组件。