父表单中的angular.js ng-form子表单验证错误

时间:2013-09-27 06:00:38

标签: angularjs

我有一张表格。

<form class="form-horizontal" name="canForm" ng-submit="stepSubmit()" novalidate>

如上所述,它被称为“canForm”。

在这种形式中..我需要一个子表单来重复需求块。

我定义了这个表单

<div ng-form="licencesForm">

在上面的“canForm”中。

当我为重复块提交licencesForm时,我确保在控制器中设置form.$setPristine()

但是,当我提交主canForm时,此表单会选择子表单中的required字段,并说主表单无效。

我无法理解这一点。 ng-form指令应该是一个独立的范围,父表单不应该接受这个子表单中字段的验证要求吗?

如果子表单有效,主表单也应该有效吗?


请参阅http://plnkr.co/edit/gkbJNAV95MQ9SGLeMvlg?p=preview

当你在子表单中添加一些东西时,它将表单设置为$ setPristine()并且子表单有效但单击提交主表单表示即使子表单有效,表单也无效?

1 个答案:

答案 0 :(得分:7)

如果有父表单和子表单,那么只有当所有子表单都有效时,父表单才有效。

    <form class="form-horizontal" name="canForm" ng-submit="stepSubmit()" novalidate>

并且有一个子表单

    <div ng-form="licencesForm">

然后canForm只有在所有licensecesForm有效时才有效。