angular - “异或”中的 FormGroup 验证
问题描述
我有一个由 3 个输入字段组成的 FormGroup:reservationCode、secretCode 和条形码。
字段条码就是reservationCode + '-' + secretCode。(这是因为条形码是一个可以在文本中找到的字段,并且可以与复制+粘贴功能一起使用)
现在,使用这些字段的按钮只有在条形码有值或者reservationCode 和secretCode 有值时才必须处于活动状态。
逻辑应该类似于:“barcode || reservationCode && secretCode”
这是我的 .ts 中的 formGroup 的代码:
this.voucherVerifyUserDataFormGroup = formBuilder.group({
reservationCode: [''],
secretCode: [''],
barcode: ['']
});
我不知道如何管理 formControl 验证器以及是否必须创建自定义验证器。
解决方案
Try this :
this.voucherVerifyUserDataFormGroup.valueChanges.subscribe((form : any) =>{
//check your condition :
if(form.barcode != '' || (form.reservationCode != '' && form.secretCode != '')){
this.voucherVerifyUserDataFormGroup.setErrors(null);
}
else
{
this.voucherVerifyUserDataFormGroup.setErrors({ 'invalid': true});
}
})
推荐阅读
- excel - 使用 VBA 将所有格式从一张表复制到另一张表
- javascript - 如何在 reactjs 中设置多个过滤器
- sap-cloud-sdk - 如何处理 ODATA 函数导入不返回包装元素
- html - Bootstrap 4 添加到地图 - 添加额外的主题颜色
- python - 我应该如何为类似 YOLOv3 的模型选择锚框,以便在自定义数据集上对其进行微调?
- python - 汉字比较应该返回真时返回假
- html - 如何让我的包装类在 jumbotron 响应式?我是新手
- android - 特定应用的音乐设置,如何做到这一点?
- python - 如何让 Python 程序从终端连续运行(直到我手动停止它)?
- python - 如何在python中将一列分成多列?