проверка формы angularjs, которая имеет внутреннюю форму

У меня есть форма по некоторому вводу. и какое-то время у меня есть другая форма путем некоторого ввода в эту форму. когда у меня нет внутренней формы, моя родительская форма действительна, но когда у меня есть внутренняя в исходной форме, а исходная форма действительна (я вижу, что входы выполнены правильно), а внутренняя форма недействительна, моя исходная форма тоже недействительна. если нажать на submit1, мне нужно сохранить входные данные в исходной форме, а если нажать на submit2, мне нужно сохранить внутренние входные данные.

В веб-форме мы сгруппировали проверку. сгруппированы ли мы в веб-форме при угловой проверке для этого случая?

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

person masoud noursaid    schedule 21.08.2016    source источник
comment
я не очень хорошо понял ваш вопрос, но я думаю, что вы можете сделать if($scope.internal.$invalid) в своем контроллере, чтобы проверить, действительна ли форма internal, когда вы отправляете форму original   -  person ShegaMike    schedule 21.08.2016
comment
спасибо дорогая за комментарий. но в этом случае мне не нужны внутренние входы, и мне не нужна действительная внутренняя форма. потому что во внутренней форме есть кнопка отправки. Мне нужно проверить исходную форму без проверки внутренней формы. на самом деле внутренняя форма - это директивная форма, которая добавляется к просмотру, когда я редактирую. но мне не нужно менять внутреннюю форму в любое время. поэтому мне нужно проверить проверку исходной формы, если нажать submit1, и проверить внутреннюю действительность, если выбрать submit2   -  person masoud noursaid    schedule 21.08.2016


Ответы (2)


Вы должны использовать ng-form вместо form, если вы вкладываете forms в form для получения дополнительной информации обратитесь к ng -форма документации.

Вложенный псевдоним директивы формы. HTML не допускает вложенности элементов формы. Полезно вкладывать формы, например, если необходимо определить достоверность подгруппы элементов управления.

person ShegaMike    schedule 21.08.2016

Я нашел свое решение.

В этом случае я использую ng-if для предотвращения проверки внутренней формы при отправке внешней формы.

Если клиент работает с внешней формой, я скрыл внутреннюю форму и могу отправить внешнюю форму. и когда клиент пытается отправить внутреннюю форму, я показываю ее клиенту, и я могу проверить ввод внутренней формы и отправить ее.

person masoud noursaid    schedule 24.08.2016