2011-10-12 84 views
11

可以在tr標籤內編寫form嗎?form-table-row標籤

<table> 
    % for my $word (@$words_2) { 
     <tr> 
      <form action="/blacklist" method="post"> 
      <td><%=$word%></td> 
      <td><input type="text" name="data" readonly hidden value="<%=$word%>" /></td> 
      <td><input class="remove" type="submit" value="Remove" /></td> 
      </form> 
     </tr> 
    % } 
</table> 
+0

你不使用表,只是純粹的CSS IMO – Rob

+0

@Rob取決於更好的,表是OK的表格數據。不是爲了佈置。 – Petruza

回答

9

trdoesn't allow form-tags as direct children。大多數現代瀏覽器會讓你做很多廢話,所以你可能使用這個 - 但我不會把它叫做好吧。更好的辦法是,但完整的形式進入td S的一個(td小號讓文本,表格,inline-和塊子元素):

<table> 
    <% for my $word (@$words_2) { %> 
     <tr> 
      <td><%=$word%></td> 
      <td> 
       <form action="/blacklist" method="post"> 
       <input type="text" name="data" readonly hidden value="<%=$word%>" /> 
       <input class="remove" type="submit" value="Remove" /> 
       </form> 
      </td> 
     </tr> 
    <% } %> 
</table> 

,或者輕鬆了很多,簡單地用一個鏈接(但要注意data被使用的GET代替POST發送 - 也許你不得不改變你的代碼處理該黑名單的東西):

<table> 
    <% for my $word (@$words_2) { %> 
     <tr> 
      <td><%=$word%></td> 
      <td><a href="/blacklist?data=<%=$word%>">Remove</a></td> 
     </tr> 
    <% } %> 
</table> 
1

是否確定了TR內寫一個形式標籤?

否。表單可以包含表格。表格單元格可以包含表單。

我想解決這個問題,像這樣:

<form action="/blacklist" method="post"> 
    <fieldset> 
    <legend>Remove</legend> 
    % for my $word (@$words_2) { 
    <label> 
     <input type="checkbox" name="data" value="<%=$word%>" /> 
     <%=$word%> 
    </label> 
    % } 
    </fieldset> 
    <input class="remove" type="submit" value="Remove" /> 
</form> 
1

不,那是不正確的。表單標籤必須位於表格外或表格單元格內。

將表單標籤放在表格中是一種古老的技巧,可以避免表單佔用額外的空間。你應該只使用CSS爲:

form { margin: 0; padding: 0; }