写一个是没关系的 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>
该 tr
不允许 form
- 作为直接孩子的标志。大多数现代浏览器会让你做很多垃圾,所以你 可以 用这个 - 但我不会叫它 好。一个更好的方法是将完整的形式变成一个 td
s(td
允许文本,表单,内联和块元素作为子元素):
<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>
在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>
不,这不正确。表单标记必须位于表格之外或表格单元格内。
将表单标记放在表中是一个老技巧,可以防止表单占用额外的空间。你应该只使用CSS:
form { margin: 0; padding: 0; }