奇妙なフォームのように見えるかもしれませんが、私はここの質問のために簡略化しましたが、それは私の実際のフォームではありません。しかし、同じシナリオがここで起こります。角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>
したがって、3つのフィールドを持つテンプレート駆動フォームがあります。 「今すぐ登録!」フォームが無効である限り、ボタンは無効になります。
「Gift shipping address」フィールドが無効になっている限り、フォーム検証にはカウントされず、完全な名前を入力してフォームを有効にするだけで十分です。
チェックボックスをオンにすると(「私たちの誕生日プレゼントを受け取りますか?」)、入力はもう無効になりません。したがって、検証が適用されます。
これは設計された動作であるかどうかはわかりませんが、無効なフィールドでも検証を適用する方法があるのだろうかと思いました。
こちらのユースケースについてのご意見はありますか?無効にされたフィールドが検証に含まれるのはなぜですか?ここで検証を行う場合は、チェックボックスで検証を設定し、フィールドを有効にしてフィールドの検証も実行します。 – Alex