我有一个包含另一个表单的表单。
当我通过 javascript 提交嵌套表单时,它在 Internet Explorer 中提交了两次,但在任何其他浏览器中只提交了一次。
如何提交嵌套表单以在 IE 中只发送一个请求。
编辑:
我正在使用 onchange 事件来提交嵌套表单..那么在我的情况下单击如何工作?
我有一个包含另一个表单的表单。
当我通过 javascript 提交嵌套表单时,它在 Internet Explorer 中提交了两次,但在任何其他浏览器中只提交了一次。
如何提交嵌套表单以在 IE 中只发送一个请求。
我正在使用 onchange 事件来提交嵌套表单..那么在我的情况下单击如何工作?
你真的不应该嵌套表单,但你可以阻止事件的传播。例如,如果您的click
活动正在提交外部表单,请执行以下操作:
$("form").on("click", function(e){
e.stopPropagation();
});
请务必阅读有关事件委托的说明。
此外,没有必要嵌套表单。如果您愿意,您可以在一个表单中使用提交按钮提交完全不同的表单;只需使用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>
我应该注意,form
Internet Explorer 10 中不支持这样的属性。您可以使用一些简单的逻辑来修补此逻辑,如下所示:
$(":submit[form]").on("click", function ( e ) {
$( "#" + $(this).attr("form") ).submit();
e.preventDefault();
});