angularjs 具有内部表单的表单验证

angularjs form validation that has an internal form

我有一些输入的表格。有时我会通过输入此表格来获得另一种表格。 当我没有内部表单时,我的父表单是有效的,但是当我有原始表单的内部表单并且原始表单有效(我看到输入确实完整)并且内部表单无效时,我的原始表单也无效。如果点击 submit1 我需要以原始形式保存输入,如果点击 submit2 我需要保存内部输入。

在网络表单中,我们对验证进行了分组。在这种情况下,我们是否在 angular 验证的网络表单中进行了分组?

<form name="original" novalidate class="form-horizontal bv-form">
    <div class="col-md-3 col-sm-6" ng-class="{ 'has-error': !original.name.$pristine && original.name.$invalid ,'has-success':!original.name.$invalid}">
    <label>Name</label>
    <input auto-focus class="form-control" type="text" name="name" ng-model="vm.original.name" required />
    <i class="form-control-feedback glyphicon" ng-class="{ 'glyphicon-ok' : original.name.$dirty && original.name.$valid , 'glyphicon-remove': original.name.$dirty && original.name.$invalid}" data-bv-icon-for="firstName" ng-show="original.name.$dirty">
    </i>
    <div>
    <span class="help-block " ng-show="original.name.$invalid && !original.name.$pristine">
    name required
    </span>
    </div>
    </div>
<form name="internal" novalidate class="form-horizontal bv-form">
<div class="col-md-3 col-sm-6" ng-class="{ 'has-error': !internal.name.$pristine && internal.name.$invalid ,'has-success':!internal.name.$invalid}">
    <label>Name</label>
    <input auto-focus class="form-control" type="text" name="name" ng-model="vm.internal.name" required />
    <i class="form-control-feedback glyphicon" ng-class="{ 'glyphicon-ok' : internal.name.$dirty && internal.name.$valid , 'glyphicon-remove': internal.name.$dirty && internal.name.$invalid}" data-bv-icon-for="firstName" ng-show="internal.name.$dirty">
    </i>
    <div>
    <span class="help-block " ng-show="internal.name.$invalid && !internal.name.$pristine">
    name required
    </span>
    </div>
    </div>
<button type="submit" id="submit2"  class="btn btn-primary blue" ng-click="int=internal.$valid && $scope.save2()">
</form>
<button type="submit" id="submit1" class="btn btn-primary blue" ng-click="original.$valid && $scope.save()">
</form>

如果您将 forms 嵌套在 form 中,则应使用 ng-form 而不是 form 有关详细信息,请参阅 ng-form 文档。

Nestable alias of form directive. HTML does not allow nesting of form elements. It is useful to nest forms, for example if the validity of a sub-group of controls needs to be determined.

我找到了我的解决方案。

在这种情况下,我使用 ng-if 来防止在提交外部表单时对内部表单进行验证。

如果客户处理外部表单,我隐藏了内部表单,我可以提交外部表单。当客户尝试提交内部表格时,我将其展示给客户,我可以验证内部表格输入并提交。