我有一张包含另一种表格的表格
当我通过javascript提交嵌套表单时,它在Internet Explorer中提交两次,但在任何其他浏览器中只提交一次。
如何提交嵌套表单以在IE中只发送一个请求。
我正在使用onchange事件来提交嵌套表单..那么点击在我的情况下如何工作?
答案 0 :(得分:2)
您确实不应该嵌套表单,但可以停止事件的传播。例如,如果您的click
活动正在提交外部表单,请执行以下操作:
$("form").on("click", function(e){
e.stopPropagation();
});
请务必阅读the notes regarding event delegation。
此外,没有必要嵌套表格。如果您愿意,您可以在一个表单中提交一个完全不同的表单;只需使用按钮本身的form
属性:
<form id="foo">
<!-- Within #foo, but I submit #bar -->
<input type="submit" form="bar" value="Within Foo" />
</form>
<form id="bar">
<!-- Within #bar, but I submit #foo -->
<input type="submit" form="foo" value="Within Bar" />
</form>
我应该注意,Internet Explorer 10中不支持form
属性。您可以通过这样一些简单的逻辑修补此逻辑:
$(":submit[form]").on("click", function ( e ) {
$( "#" + $(this).attr("form") ).submit();
e.preventDefault();
});