可能看起來像一個奇怪的形式,但我爲了這個問題簡化了它,這不是我的實際形式。但是同樣的情況發生在這裏。角4形式,禁用字段總是有效
<form (ngSubmit)="submit(form)" #form="ngForm">
<div>
Full name:
<input name="fullName" required>
</div>
<div>
Would you like to receive birthday gifts from us?
<input type="checkbox" name="gifts" [(ngModel)]="isAddressEditable">
</div>
<div>
Gift shipping address:
<input name="giftAddress" required [disabled]="!isAddressEditable"> // false (disabled) by default
</div>
<button type="submit" [disabled]="form.invalid">Register now!</button>
</form>
所以我們有一個帶有三個字段的模板驅動表單。 「立即註冊!」只要表單無效,按鈕將被禁用。
問題是,只要「禮品送貨地址」字段被禁用,它就不會在表單驗證中計數,並且它足以填寫全名以使表單有效。
只要我勾選複選框(「你想收到我們的生日禮物?」),輸入不再被禁用,因此驗證適用。
我不確定這是否是設計的行爲,但我想知道是否有一種方法可以對禁用的字段應用驗證。
想知道這裏的用例嗎?爲什麼將禁用的字段包含在驗證中?如果你想在這裏驗證,爲什麼不在複選框上設置驗證,然後啓用該字段並激活驗證字段? – Alex