我有2个字段:
<input type="text" name="quantity" #quantity="ngModel" [(ngModel)]="orderProduct.selectedProduct.quantity" required min="1" max="50">
和一个复选框
<label class="checkbox">
<input type="checkbox" name="orderProduct.selectedProduct.Option" value="{{option.Value}}" [(ngModel)]="option.checked" /> <!-- disable checkbox -->
<span class="checkmark"></span> <!-- change css style to this element -->
</label>
如果用户在checkmark
字段中输入了不正确/正确的值范围(最小值和最大值之间),如何禁用/启用该复选框并将样式更改为quantity
元素?
我是新手,正努力寻找解决方案。我正在使用Angular 5。
答案 0 :(得分:1)
disabled
中有<input>
个属性。因此,在disabled
中,您可以使用 <input type="text" name="quantity" ..
来检查quantity.invalid
的有效性,如下所示:
<label class="checkbox">
<input type="checkbox" name="orderProduct.selectedProduct.Option" value="{{option.Value}}" [(ngModel)]="option.checked" disabled="quantity.invalid"/> <!-- disable checkbox -->
<span class="checkmark"></span> <!-- change css style to this element -->
</label>
有两种方法可以检查有效性(如果您不想使用reactive forms):
validator
传递到<input>
。详细了解here和here。ngModelChange
中使用<input>
,就像<input (ngModelChange)="isInputValid($event)" name="quantity" ..
一样,在您的.ts
文件中,根据以下方法的有效性,编写此方法来更新布尔值(例如isquantityValid
)您的输入。然后使用该变量来enable\disable
复选框。 Read More 要有条件地更改样式,请执行以下操作:
<span [ngClass]="isquantityValid ? 'styleClass1' : 'styleClass2'">content</span>