data-abide将所有字段标记为无效

时间:2015-06-12 15:04:58

标签: html ruby-on-rails ruby zurb-foundation

我有这样的表格:

<%= 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。

1 个答案:

答案 0 :(得分:0)

为了使<small class="error"> ... </small>有效,它必须是输入的兄弟。虽然它可能看起来像将放在之后的输入,这将是一个兄弟,但是代码会影响所有兄弟姐妹。 (这在20/20后视中是有意义的。)

文档的措辞可以解释(特别是在很少睡眠的情况下)包裹<div>仅仅是为了示例。但是,必须具有输入控件的父元素和错误消息。 <DIV>效果非常好。

自定义命名模式代码示例实际上不显示包装元素。公平地说,它也不会显示错误消息元素。但这可能会误导人们认为包装<div>是多余的,只是为了解释发生了什么,而不是在DOM中制作正确的树结构以隔离验证行为的必要组件。