【发布时间】:2013-07-29 10:27:20
【问题描述】:
表单不能在表格中使用 jQuery 提交是有原因的,还是我做错了什么?我已经在表格外测试了表单提交,然后我将它包装在表格中它就停止工作,即使我添加了一个额外的parent() 来弥补在代码中<td> 元素上方移动的表单。有人可以帮我解决这个问题吗?
HTML
WITHOUT TABLE
<form action="page.cfm" method="post">
<select class="select">
<option>Test</option>
</select>
</form>
WITH TABLE
<table>
<tr>
<form action="page.cfm" method="post">
<td>
<select class="select">
<option>Test</option>
</select>
</td>
</form>
</tr>
</table>
jQuery
WITHOUT TABLE
$(".select").on("change", function() {
$(this).parent("form").submit();
});
WITH TABLE
$(".select").on("change", function() {
$(this).parent().parent("form").submit();
});
【问题讨论】:
-
大胆猜测,TD 不是表单的有效子代,而表单也不是 TR 的有效子代。
-
将
form作为tr的子元素不是有效的HTML。 -
如下所述,无效的 HTML 并不是不正确的 HTML。大多数网站不坚持使用有效的 HTML,但我明白最好尽量坚持使用有效的 HTML,因此我感谢您的反馈。
-
知道这是一篇较旧的帖子——来自仍然相信
元素在网站设计中占有一席之地的人——遇到了同样的问题,没有更优雅的选择,替换为 元素与
元素(使用 Bootstrap 布局)并能够通过该方法获得类似的布局。