2012-09-09 185 views
1

我知道在表格行內部有一個表單是不正確的。儘管如此,似乎有一個實際的理由。html - 表格 - 無效標記

我想能夠單獨編輯每一行(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> 

回答

2
<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> 
+0

這會工作。儘管數據並不需要嵌套表格,但它仍然看起來像一個佈局黑客。並且可能需要更多的CSS來確保TH與它們各自的TD的寬度相同。 –

+0

如果這是您的場景,那麼我認爲您需要爲嵌套的tds恢復跨度/ div,或者使用一個表單並解析數據服務器端以瞭解哪一行已提交。 – weexpectedTHIS