我使用Angular2 ForumBulder创建表单并添加验证。在组件
的示例代码下面this.OtpForm = this._fb.group({
otpInput: this._fb.group({
otpInput1: ['', Validators.required],
otpInput2: ['', Validators.required],
otpInput3: ['', Validators.required],
}, { validator: this.numericValidator })
});
现在这很好用。但问题是Validators.required
如何像自定义验证器numericValidator
一样对所有字段都是通用的?
答案 0 :(得分:3)
您可以为otpInput组再创建一个自定义验证器,例如
pandoc
并添加到此:
--volumes-from
使用Validators.compose()
组合验证器validateAllRequired(g: FormGroup) {
let ctrls = g.controls;
let keys = Object.keys(ctrls);
let valid = true;
keys.forEach((key) => {
let ctrl = ctrls[key];
if (ctrl.value.trim() == '') {
valid = false;
}
});
return valid ? null : {
validateAllRequired: {
valid: valid
}
};
}
用于异步验证器使用
otpInput: this._fb.group({
otpInput1: [''],
otpInput2: [''],
otpInput3: [''],
}, { validator: Validators.compose([this.numericValidator, this.validateAllRequired]) })