にフォームを検証しません、私は以下のように簡単なフォームを持っている:角度5 - リアクティブフォームが提出
some.component.html
<form class="example-form" novalidate (ngSubmit)="onSubmit()" autocomplete="off" [formGroup]="testform">
<input type="text" formControlName="name" class="form-control" placeholder="Enter name" required/>
<app-show-errors [control]="claimform.controls.name"></app-show-errors>
<button type="submit" (click)="onSubmit()">Next</button>
</form>
some.component.ts
をngOnInit() {
this.testform= new FormGroup({
name: new FormControl('', { validators: Validators.required})
}, {updateOn: 'submit'});
}
onSubmit() {
if (this.testform.valid) {
alert('saving data');
} else {
this._validationService.validateAllFormFields(this.testform);
}
}
validationService.ts
validateAllFormFields(formGroup: FormGroup) {
Object.keys(formGroup.controls).forEach(field => {
const control = formGroup.get(field);
if (control instanceof FormControl) {
control.markAsTouched({ onlySelf: true });
} else if (control instanceof FormGroup) {
this.validateAllFormFields(control);
}
});
}
問題
フォームはvalidate on submit場合は空白のままになりますが、それでも私はthis.testform.valid
をチェックしたときに値を充填した後、それは、false
を返します。しかしupdateOn:'submit'
をform
から削除した場合は、入力コントロールのblur
を検証し、値を入力するとフォーム戻り値true
を検証します。 updateOn
が正常に動作しているかどうか、またはこれを適切な方法で実装しているかどうかは不明です。誰かが私を正しい方向に向けることができますか?
<button type="submit" (click)="onSubmit()">Next</button>
とフォームから:あなたのHTML内
詳細な説明ありがとうございます。 –