我想要实现的目标
我有一个单选按钮组,需要 两部分验证架构 ,并根据彼此的值有条件地要求这两个部分。如果用户选择了最后一个选项'其他',则会显示一个输入字段,供他们手动输入另一个数字
如果未选择第四个选项,第一个验证应该要求选择前三个 。
第二个验证应该是,如果选择值是'其他',则忽略输入掩码并要求输入填充10位数的电话号码。
const cardContactSchema = {
selectedCardNumber: Joi.string()
.label('Phone Number')
.when('otherPreferredCardNumber', {
is: Joi.string().empty(''),
then: Joi.string().required(),
}),
otherPreferredCardNumber: Joi.string()
.label('Phone Number')
.when('selectedCardNumber', {
is: 'other',
then: Joi.string()
.replace(/\D/g, '')
.length(10)
.required()
.options({
language: {
string: {
length: 'length must be {{limit}} digits',
},
},
}),
otherwise: Joi.string().optional(),
}),
};
当前结果:
Error: item added into group otherPreferredCardNumber created a dependencies error(otherPreferredCardNumber)
我的期望: 第一个验证应该是,如果未选择第四个选项,则需要选择前三个 。
第二个验证应该是,如果选择值是'其他',则忽略输入掩码并要求输入填充10位数的电话号码。