javascript 是验证或条件验证条件

unftdfkk  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(120)

我有这3个字段。

dateType: null | String,
fromDate: null | Date,
toDate: null | Date,

如果dateType不为空,则需要fromDatetoDate
如果同时选择了fromDatetoDate,则fromDate必须小于toDate
我如何使用Yup验证实现这一点?

rjjhvcjd

rjjhvcjd1#

我想你已经得到答案了,如果没有你可以试试这个-

yup.object().shape({
  dateType: yup.string().nullable(),
  fromDate: yup.date().transform((v) => (moment(v).isValid() ? moment(v) : null)).nullable().when('dateType',{
    is: (d)=>d,
    then:yup.date().required().typeError('this date is required').max(yup.ref('toDate'), 'Fromm-Date  must be less than the To-date')
  }),
  toDate: yup.date().transform((v) => (moment(v).isValid() ? moment(v) : null)).nullable().when('dateType',{
    is: (d)=>d,
    then:yup.date().required().typeError('this date is required')
  })
})

相关问题