在Angular反应形式中使用updateOn:'blur'

时间:2018-09-04 13:11:50

标签: angular

仅当用户离开字段(onblur时,我才想开始验证表单的字段。

我正在尝试这种方式:

    this.profileForm = this.fb.group({
                firstName: ['initial value',
                    [Validators.required, Validators.minLength(2), forbiddenNameValidator(/bob/i)],
                    [forbiddenNameValidatorAsync()],
                    { updateOn: 'blur' }
                ],
                lastName: ['b']
            });

但是这种方式不起作用。 验证(同步和异步)是在onChange期间执行的。

我还想问一下如何通过检查lastName来验证姓名。

示例:如果姓名字段与姓氏相同,则希望禁用该字段(仅姓名字段,而不是整个表单,而不是两个字段)。

1 个答案:

答案 0 :(得分:8)

将参数设置为AbstractControlOptions

    firstName: ['initial value',{
         validators: [Validators.required, Validators.minLength(2), forbiddenNameValidator(/bob/i)],
         asyncValidators: [forbiddenNameValidatorAsync()],
         updateOn: 'blur'
    }],

此处示例https://stackblitz.com/edit/angular-hdna17?file=src%2Fapp%2Fhello.component.ts