html-表单表-无效标记

html-表单表-无效标记,html,ruby-on-rails,haml,Html,Ruby On Rails,Haml,我理解在表格行中包含表单是不正确的。不过,这样做似乎有一个实际的原因 我希望能够单独编辑每一行(ajax等),因此每个for都有自己的形式是有意义的 下面是我需要如何在功能上布局表和表单,但标记无效。而且,haml/erb实际上不会像这样处理标记(表单在第一个单元格中打开和关闭) 我可以使用display:table cell等,但我认为我显示的数据在语义上确实属于表 如何使用适当的标记实现相同的功能 <table> <thead> <tr> &l

我理解在表格行中包含表单是不正确的。不过,这样做似乎有一个实际的原因

我希望能够单独编辑每一行(ajax等),因此每个for都有自己的形式是有意义的

下面是我需要如何在功能上布局表和表单,但标记无效。而且,haml/erb实际上不会像这样处理标记(表单在第一个单元格中打开和关闭)

我可以使用display:table cell等,但我认为我显示的数据在语义上确实属于表

如何使用适当的标记实现相同的功能

<table>
<thead>
  <tr>
    <th>id</th>
    <th>name</th> 
    <th>email</th>
    <th>phone</th>
    <th>address</th> 
  </tr>
</thead>
<tbody>
  <tr>
    <%= form_for person do |f| %>
      <td><%= id %></td>
      <td><%= f.text_field :name%></td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
    <% end %>
  </tr>
</tbody>
</table>

身份证件
名称
电子邮件
电话
地址
...
...
...

身份证件
名称
电子邮件
电话
地址
...
...
...

那就行了。不过,数据实际上并不需要嵌套表,因此它看起来仍然像是一个布局黑客。而且可能需要更多的css来确保TH与各自的TD的宽度相同。如果这是您的情况,那么我认为您需要为嵌套的tds恢复到spans/DIV,或者使用一个表单并解析数据服务器端以了解提交了哪一行。
<table>
<thead>
  <tr>
    <th>id</th>
    <th>name</th> 
    <th>email</th>
    <th>phone</th>
    <th>address</th> 
  </tr>
</thead>
<tbody>
  <tr>
    <td>
      <%= form_for person do |f| %>
        <table>
          <tr>
            <td><%= id %></td>
            <td><%= f.text_field :name%></td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
          </tr>
        </table>
      <% end %>
    </td>
  </tr>
</tbody>
</table>