javascript - 如何在 Angular 2 中对字段进行多重验证?

标签 javascript angular

我正在 Angular 2 中构建模型驱动表单,我希望特定字段的验证范围在 1-1000 之间,并且还可以具有 2000 和 2001 的值,

我尝试将其放入撰写中:

this.configForm.controls["field"].setValidators(Validators.compose([Validators.required,CustomValidators.equal(2000),CustomValidators.equal(2001), CustomValidators.range([1,1000])]));

但是没有成功..

怎么做?

谢谢。

最佳答案

如果您使用 FormBuilder,请考虑实现一个组验证器来验证一组控件而不是单个控件:

How to do simple cross field validation in Angular 2 form to pass validation if one of the control in group has value?

FormBuilder 的 group 方法的第二个参数允许您指定组验证器:

 this.fb.group({
     field1: [''],
     field2: [''],
     }, 
     {
         validator: (c:FormGroup) => {
              return {'whateveryouwant': true};
         }
     }
 );

如果您需要清除字段验证标志:

let field1 = c.get('field1');
field1.setErrors(null);

关于javascript - 如何在 Angular 2 中对字段进行多重验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178527/

相关文章:

javascript - 如何创建带背景的三 Angular 形(固定高度,宽度=100%)

javascript - Bootstrap 自动完成功能不加载 map

angular - “md-card”不是 Material 2 中的已知元素

javascript - 为什么带有一个文本输入的表单在输入时提交,而带有两个文本输入的表单却没有?

javascript - 通过 angularJS 向瘦客户端发送消息

javascript - Momentjs解析通配符

javascript - 带延迟的递归可观测方法

html - 将输入字段与较小屏幕中的按钮对齐超出范围

javascript - Angular 2下拉菜单第一个选项没有出现

javascript - Angular 2.0 cli 项目没有导出 mng 'RouterConfig'