如何在Angular中的第一次更改时触发表单输入验证

时间:2018-01-08 16:02:26

标签: angular forms angular-reactive-forms angular-forms angular-validation

在我的Angular 5应用程序中,我想覆盖一些表单输入的默认验证行为。特别是,我想在用户插入内容后立即触发字段验证。

目前默认行为如下。例如,假设您有一个仅允许整数的验证器。

最初这个领域是原始的,空的:

enter image description here

然后用户关注输入并输入一些数据:

enter image description here

尽管插入的值无效(因为它不是整数),但尚未触发验证。一旦用户离开焦点,它就会被触发(例如按下TAB或聚焦另一个输入):

enter image description here

从现在开始,每次更改都会触发验证。

因此,如果用户现在回到该字段并插入有效值,验证器将立即完成其工作:

enter image description here

enter image description here

我想要的是,只要插入了一些非有效数据,验证器就会将该字段标记为无效,即使用户第一次插入数据并且从未离开过该字段

1 个答案:

答案 0 :(得分:0)

如果您在组件中创建表单时附加验证器,我认为这很好。

例如:

this.myReactiveForm  = new FormGroup({
  'name': new FormControl(this.user.name, [
    Validators.required,
    Validators.minLength(4)
  ]),

在此,只要用户名的长度超过4个字符,您就会看到该消息。