【问题标题】:Validating angular2 control on blur or any other event在模糊或任何其他事件上验证 angular2 控件
【发布时间】:2016-08-03 09:55:00
【问题描述】:

我正在 Angular2 中验证表单,我使用默认验证器和一些自定义验证函数进行验证。我还从服务器实现了异步验证。现在的问题是,它正在验证更改事件的控件并在该控件上的每次按键时执行 ajax 请求。我期望执行该 ajax 请求以在该控件模糊时执行。

有没有办法控制该控件的验证?或对模糊或任何其他事件执行验证?

【问题讨论】:

    标签: angular angular2-forms


    【解决方案1】:

    如果您想手动控制验证,您可以使用 AbstractControl 类的 setErrors(我假设您正在使用模型驱动或在组件中引用 FormControl)。

    所以,不要将 Validator 函数硬编码到表单初始化中

    this.userNameFormControl = this.formBuilder.control(""/*, Validators.required*/);
    

    相反,订阅您的自定义事件并手动验证控件:

    validateUserName() {
      let validationResult = Validators.required(this.userNameFormControl);
      if (validationResult) {
        this.userNameFormControl.setErrors(validationResult);
      }
    }
    

    注意:这些代码行未经测试。

    【讨论】:

    • 我认为这不是一个好主意。因为在我的应用程序中,我需要验证模糊上的所有字段。因此,像这样为每个字段编写验证是复杂的,我认为这不是好的做法。寻找其他答案。
    猜你喜欢
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2018-02-10
    相关资源
    最近更新 更多