2016-09-14 18 views
1

这似乎是非常普遍的,但它的解决方案似乎很复杂。角引导条件所需字段

我有一段表格是可选的。如果启用,则其字段是必需的。

<!-- begin optional section --> 
<label> 
    <h4>Trailer </h4> 
    <span>(optional </span> 
    <input class="input-inline" ng-model="hasTrailer" type="checkbox"/> 
    <span>)</span> 
    <h4 style="display: inline"> :</h4> 
</label> 


<div class="form-group"> 
    <label for="trailerNumber"> Number:</label> 
    <div> 
     <input 
     type="text" 
     name="trailerNumber" 
     ng-disabled="!hasTrailer" 
     ng-model="vm.Manifest.Trailer.number" 
     required /> 
    </div> 
    <div> 
     <div 
      class="error-message" 
      ng-show="hasTrailer && form.trailerNumber.$invalid && form.trailerNumber.$touched || form.submitted"> 
      <span> Trailer Number is required.</span > 
     </div> 
    </div>    
</div> 
<!-- end optional section --> 

因此,在该部分的顶部有一个复选框,其模型是“拖车”。 如果选中,则这些字段是必需的。

我真正想要的理想是:

<input type="text" required="hasTrailer"> 

也许

<input type="text" ng-attr({'required':hasTrailer}) 

也就是说,如果hasTrailer === true,则需要=真

回答

0

你可以使用ng-required指令,它会有条件当提供的表达式变为真时,输入required

<input type="text" ng-required="hasTrailer"> 
+0

糟糕。 *你*击败他*!固定。 – DaveC426913

0

你可以通过使用ngRequired来实现。你可以阅读一下here

它基本上是这样使用的HTML元素

<input type="text" ng-required="hasTrailer"> 

hasTrailer应该在范围布尔属性。

+0

正是我在找的东西!很高兴我问过,否则我会认为那些更复杂的解决方案是唯一的方法...... – DaveC426913

0

我正要用这个选项去做,它做同样的事情,但另外还会让整个部分消失。

<div ng-if="hasTrailer"> 
    <!-- all my optional fields--> 
</div>