尝试使用
表单不在表中使用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();
});
表单不在表中使用jQuery提交是有原因的吗?还是我做错了什么?
您的HTML无效。使用验证器。一个窗体可以包含一整张表。表格可以完全包含在表格单元格中。表单不能只包含组成表的某些单元格。
浏览器中的错误更正将表单放在表外,因此尝试提交表单会产生意外结果。
HTML
<form action="page.cfm" method="post">
<table>
<tr>
<td>
<select class="select">
<option>Test</option>
</select>
</td>
</tr>
</table>
</form>
JS-
$(".select").on("change", function() {
this.form.submit();
});
注意,对于表单元素,this.form
引用包含的表单。
尝试使用$.closest()
无/有表
$(".select").on("change", function() {
$(this).closest("form").submit();
});