有没有理由为什么表单不会在表格中使用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();
});
答案 0 :(得分:3)
有没有理由为什么表单不会在表格中使用jQuery提交,或者我只是做错了什么?
您的HTML无效。使用a validator。表单可以包含整个表。表单可以完全包含在表格单元格中。表单不能只包含构成表的某些单元格。
浏览器中的错误更正是将表单放在表格之外,因此尝试提交表单会产生意外结果。
答案 1 :(得分:2)
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
引用包含的表单。
答案 2 :(得分:0)
$.closest()
WITHOUT / WITH TABLE
$(".select").on("change", function() {
$(this).closest("form").submit();
});