我能够在角度2中集成表单验证。
我正在使用form = formBuilder.group({...})
方法。
验证效果很好。但是我希望只有在我点击提交时才会激活验证。目前默认情况下,当输入中的用户模糊时,它会激活。如何停止模糊验证并手动触发它。
修改
使用*ngIf
或[hidden]
的问题在于它们可以正常使用变量来跟踪表单提交。 但是验证仅在我从输入模糊时触发。换句话说,当用户未访问输入时,验证不会触发。
答案 0 :(得分:1)
您需要将自定义formSubmitted
属性集成到表达式中以显示错误。例如:
<span *ngIf="formSubmitted && form.controls.someCtrl.errors?.someerror">
Some message
</span>
默认情况下,其值为false
,并在提交表单时设置为true
。
@Component({
(...)
template: `
<form (ngSubmit)="onFormSubmitted()">
</form>
`
})
export class SomeComponent {
formSubmitted: boolean = false;
onFormSubmitted() {
this.formSubmitted = true;
}
}
答案 1 :(得分:1)
仅在设置提交的单位时显示错误:
<form (ngSubmit)="submit()" ...>
<input ngControl="name" #name="ngForm" type="text">
<span [hidden]="name.valid && isSubmitted"><b>Required</b></span>
</form>
class MyComponent {
isSubmitted:boolean = false;
submit() {
this.isSubmitted = true;
}
}