2011-10-12 43 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; }