不要在模糊

时间:2016-04-20 09:27:47

标签: validation angular

我能够在角度2中集成表单验证。

我正在使用form = formBuilder.group({...})方法。

验证效果很好。但是我希望只有在我点击提交时才会激活验证。目前默认情况下,当输入中的用户模糊时,它会激活。如何停止模糊验证并手动触发它。

修改

使用*ngIf[hidden]的问题在于它们可以正常使用变量来跟踪表单提交。 但是验证仅在我从输入模糊时触发。换句话说,当用户未访问输入时,验证不会触发。

2 个答案:

答案 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;
  }
}