【发布时间】:2021-07-20 03:39:48
【问题描述】:
我正在构建这个表单,它有一个不需要的字段,但是,如果用户输入他们的电话号码,我想对其进行验证并使其成为必填项。如果没有任何内容,则应删除所需的验证。
我有这个,但它不起作用。
private checkNum( ctrl: FormControl ) {
let valid = false;
if ( ctrl ) {
ctrl.setValidators(Validators.required);
if ( ctrl.value.length ) {
const phoneNumber = this.phoneNumberUtil.parseAndKeepRawInput( ctrl?.value, 'us' );
valid = this.phoneNumberUtil.isValidNumber(phoneNumber);
if (validNumber) {
this.validPhoneNum = this.phoneNumberUtil.format(phoneNumber, PhoneNumberFormat.E164);
return null
}
return { required: 'Phone Invalid' }
}
return { required: 'Phone Invalid' }
} else {
return ctrl.clearValidators();
}
}
【问题讨论】:
-
动态所需的验证没有任何意义,删除它。 如果存在值,其余的自定义验证应该失败或通过。否则不执行,返回null;
标签: angular