表单 – 如何在角度2中触发表单验证器

前端之家收集整理的这篇文章主要介绍了表单 – 如何在角度2中触发表单验证器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在angular2中,当另一个控件更改时,我想触发一些控件的Validator.有没有办法,我可以告诉表单重新验证?更好的是,我可以请求验证特定领域吗?

例:
给定复选框X和输入P.
输入P具有基于X的模型值的行为不同的验证器.
当X被检查/取消选中时,我需要在P上调用验证器.P上的验证器将查看模型来确定X的状态并相应地验证P.

这里有一些代码

constructor(builder: FormBuilder) {
    this.formData = { num: '',checkBox: false };

    this.formGp = builder.group({
        numberFld: [this.formData.num,myValidators.numericRange],checkBoxFld: [this.formData.checkBox],});
}

this.formGp.controls['checkBoxFld'].valueChanges.observer({
    next: (value) => {
        // I want to be able to do something like the following line:
        this.formGp.controls['numberFld'].validator(this.formGp.controls['numberFld']);
    }
});

有人有解决方案吗?谢谢!

解决方法

我不知道你还在寻找答案,所以这里是我的建议:

看看这个:Angular 2 – AbstractControl

我想你可以做的是:

this.formGp.controls['checkBoxFld'].valueChanges.observer({
    next: (value) => {
       this.formGp.controls['numberFld'].updateValueAndValidity();
    }
});

这应该触发并运行验证器.此外,状态也被更新.现在,您应该可以查看验证器逻辑中的复选框值.

希望这可以帮助!

编辑:更新链接和示例.当我写我的答案时,代码改变了.

EDIT_2:alpha.48将EventEmitter.observer更改为EventEmitter.subscribe!

原文链接:https://www.f2er.com/html/230918.html

猜你在找的HTML相关文章