Javascript 仅对可见控件应用“$invalid”

Javascript 仅对可见控件应用“$invalid”,javascript,angularjs,Javascript,Angularjs,我有一个简单的表单,它根据属性显示控件data ng hide=“objective.editMode”: 进展 我的问题是canadduserform。$invalid检查表单上刚刚显示的控件?作为adduserform。$invalid要求填写所有控件,但并非所有控件都显示在表单上,因为控件的外观取决于目标。editMode如果而不是ng hide,则可以使用ng: <input data-ng-if="!objective.editMode" type="number" min=

我有一个简单的表单,它根据属性显示控件
data ng hide=“objective.editMode”


进展

我的问题是can
adduserform。$invalid
检查表单上刚刚显示的控件?
作为
adduserform。$invalid
要求填写所有控件,但并非所有控件都显示在表单上,因为控件的外观取决于
目标。editMode

如果
而不是
ng hide,则可以使用
ng

<input data-ng-if="!objective.editMode" type="number" min="0" max="100" 
           data-ng-model="newTask.Progress" class="form-control" required  />

您可以使用
ng if
而不是
ng hide

<input data-ng-if="!objective.editMode" type="number" min="0" max="100" 
           data-ng-model="newTask.Progress" class="form-control" required  />

使用
数据ng hide/data ng show隐藏的元素仍在DOM树上,因此正在验证。如果
将从DOM中删除元素,则改用
数据ng:

<form class="form-horizontal" role="form" name="adduserform">                        
<div class="form-group">                           
   <label for="title6" class="col-sm-5 control-label">Progress</label>
   <div class="col-sm-6">

      <input data-ng-if="!objective.editMode" type="number" min="0" max="100" 
           data-ng-model="newTask.Progress" class="form-control" required  />
      <input data-ng-if="objective.editMode" type="number" min="0" max="100" 
           data-ng-model="objective.Progress" class="form-control" required  />

   </div>
</div>    

<div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
      <span data-ng-if="!editMode">
         <input data-ng-if="!objective.editMode" type="submit" value="Add" 
                ng-disabled="adduserform.$invalid" data-ng-click="add()"/>
         <input data-ng-if="objective.editMode" type="submit" value="Save" 
                ng-disabled="adduserform.$invalid" data-ng-click="Save()" />    
      </span>                 
   </div>
</div>

进展

使用
数据ng hide/data ng show隐藏的元素仍在DOM树上,因此正在验证。如果
将从DOM中删除元素,则改用
数据ng:

<form class="form-horizontal" role="form" name="adduserform">                        
<div class="form-group">                           
   <label for="title6" class="col-sm-5 control-label">Progress</label>
   <div class="col-sm-6">

      <input data-ng-if="!objective.editMode" type="number" min="0" max="100" 
           data-ng-model="newTask.Progress" class="form-control" required  />
      <input data-ng-if="objective.editMode" type="number" min="0" max="100" 
           data-ng-model="objective.Progress" class="form-control" required  />

   </div>
</div>    

<div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
      <span data-ng-if="!editMode">
         <input data-ng-if="!objective.editMode" type="submit" value="Add" 
                ng-disabled="adduserform.$invalid" data-ng-click="add()"/>
         <input data-ng-if="objective.editMode" type="submit" value="Save" 
                ng-disabled="adduserform.$invalid" data-ng-click="Save()" />    
      </span>                 
   </div>
</div>

进展