我想在表单中发送表单,但是当我提交表单内部表单时,所有表单都会立即提交。 甚至可以这样做吗?
<form name="add_foobar_form" novalidate ng-submit="addFoobar(foobar)">
<form name="send_contact_form" novalidate ng-submit="sendContact(hello)">
<input type="text" ng-model="hello.bye">
<input type="submit" value="sendmall">
</form>
<input type="text" ng-model="foobar.go">
<input type="submit" value="sendall">
</form>
答案 0 :(得分:15)
Can you have nested forms?根本没有,嵌套表单无法正常工作。
<强> Docs Says 强>
在Angular中,表格可以嵌套。这意味着外形是 当所有子表单都有效时有效。但是,浏览器 不允许嵌套元素,所以Angular提供了 ngForm指令,其行为与但可以相同 嵌套。这允许您使用嵌套表单,这非常有用 在动态表单中使用Angular验证指令时 使用ngRepeat指令生成
但遗憾的是,您无法使用ng-submit
表单,只需单击任何内部表单即可调用父ng-submit
方法。
解决此问题的方法是不要使用ng-submit
指令来嵌套内部。您应该使用ng-click
按钮,并将按钮类型从button
更改为submit
。
<强>标记强>
<form name="add_foobar_form" novalidate ng-submit="addFoobar('foobar')">
<ng-form name="send_contact_form" novalidate>
<input type="text" ng-model="hello.bye">
<input type="button" value="sendmall" ng-click="sendContact('hello')">
</ng-form>
<input type="text" ng-model="foobar.go">
<input type="submit" value="sendall">
</form>