Applying `$invalid` just for visible controls
<p>I have a simple form which shows control depending on property <code>data-ng-hide="objective.editMode"</code>: </p>

<pre><code>&lt;form class="form-horizontal" role="form" name="adduserform"&gt;                        
    &lt;div class="form-group"&gt;                           
       &lt;label for="title6" class="col-sm-5 control-label"&gt;Progress&lt;/label&gt;
       &lt;div class="col-sm-6"&gt;

          &lt;input data-ng-hide="objective.editMode" type="number" min="0" max="100" 
               data-ng-model="newTask.Progress" class="form-control" required  /&gt;
          &lt;input data-ng-show="objective.editMode" type="number" min="0" max="100" 
               data-ng-model="objective.Progress" class="form-control" required  /&gt;

       &lt;/div&gt;
    &lt;/div&gt;    

    &lt;div class="form-group"&gt;
       &lt;div class="col-sm-offset-2 col-sm-10"&gt;
          &lt;span data-ng-hide="editMode"&gt;
             &lt;input data-ng-hide="objective.editMode" type="submit" value="Add" 
                    ng-disabled="adduserform.$invalid" data-ng-click="add()"/&gt;
             &lt;input data-ng-show="objective.editMode" type="submit" value="Save" 
                    ng-disabled="adduserform.$invalid" data-ng-click="Save()" /&gt;    
          &lt;/span&gt;                 
       &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
</code></pre>

<p><strong>My question is can <code>adduserform.$invalid</code> checks just shown controls on the form?</strong> As <code>adduserform.$invalid</code> requires all control to be filled, but not all controls are shown on the form as appearance of control is depending on <code>objective.editMode</code></p>