形式内的角度提交表格?

时间:2015-08-25 17:44:21

标签: angularjs forms

我想在表单中发送表单,但是当我提交表单内部表单时,所有表单都会立即提交。 甚至可以这样做吗?

<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>

1 个答案:

答案 0 :(得分:15)

Can you have nested forms?根本没有,嵌套表单无法正常工作。

  

<强> Docs Says

     

在Angular中,表格可以嵌套。这意味着外形是   当所有子表单都有效时有效。但是,浏览器   不允许嵌套元素,所以Angular提供了   ngForm指令,其行为与但可以相同   嵌套。这允许您使用嵌套表单,这非常有用   在动态表单中使用Angular验证指令时   使用ngRepeat指令生成

但遗憾的是,您无法使用ng-submit表单,只需单击任何内部表单即可调用父ng-submit方法。

Example Plunkr

解决此问题的方法是不要使用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>

Workaround Plunkr

相关问题