Javascript 多重';何时';关于Joi验证的条件 上下文 节点版本:6.11.3 joi版本:10.0.6 环境(节点、浏览器):浏览器 与(hapi,独立,…)一起使用:独立 任何其他相关信息:如果我一次只评论一个条件,那么这两个条件都可以独立工作
我正在努力实现的目标 我有一个单选按钮组,它需要一个两部分验证模式,根据彼此的值有条件地要求两部分。如果用户选择最后一个选项“其他”,则会出现一个输入字段,供用户手动输入另一个数字 如果未选择第四个选项,则第一次验证应要求选择前三个选项。 如果选择值为“其他”,则第二次验证应忽略输入掩码,并要求输入中填入10位电话号码Javascript 多重';何时';关于Joi验证的条件 上下文 节点版本:6.11.3 joi版本:10.0.6 环境(节点、浏览器):浏览器 与(hapi,独立,…)一起使用:独立 任何其他相关信息:如果我一次只评论一个条件,那么这两个条件都可以独立工作,javascript,validation,joi,Javascript,Validation,Joi,我正在努力实现的目标 我有一个单选按钮组,它需要一个两部分验证模式,根据彼此的值有条件地要求两部分。如果用户选择最后一个选项“其他”,则会出现一个输入字段,供用户手动输入另一个数字 如果未选择第四个选项,则第一次验证应要求选择前三个选项。 如果选择值为“其他”,则第二次验证应忽略输入掩码,并要求输入中填入10位电话号码 const cardContactSchema = { selectedCardNumber: Joi.string() .label('Phone Number')
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(),
}),
};
当前结果:
错误:添加到组otherPreferredCardNumber的项目创建了一个依赖项错误(otherPreferredCardNumber)
我的期望:
如果未选择第四个选项,则第一次验证应要求选择前三个选项。
如果选择值为“其他”,则第二次验证应忽略输入掩码,并要求输入中填入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(),
}),
};