2016-09-14 62 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>