在form
代码中写tr
是否可以?
<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 :(得分:10)
tr
doesn't allow form
-tags as direct children。大多数现代浏览器会让你做很多垃圾,所以你可以使用它 - 但我不会称之为 OK 。一个更好的方法是将完整的表单转换为td
s之一(td
s允许文本,表单,内联和块元素作为子元素):
<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 :(得分: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>
答案 2 :(得分:1)
不,这不正确。表单标记必须位于表格之外或表格单元格内。
将表单标记放在表中是一个老技巧,可以防止表单占用额外的空间。你应该只使用CSS:
form { margin: 0; padding: 0; }