【发布时间】:2021-12-13 15:44:06
【问题描述】:
我有一个带有 2 个复选框的表单 - 约束是最多可以选中 1 个复选框。也就是说,这两个复选框都不能选中。
我在表单中添加了逻辑以在选中 1 时禁用另一个复选框。但我也想验证一下。
我的尝试是这样的:
yup.object().shape({
textInput: yup.string().trim().required('Text input is required.'),
checkbox1: yup.boolean()
.when('checkbox2', {
is: true,
then: yup.boolean().isFalse()
}),
checkbox2: yup.boolean()
.when('checkbox1', {
is: true,
then: yup.boolean().isFalse()
}),
}, [[ 'checkbox1', 'checkbox2' ]])
但这会导致奇怪的行为 - 当第一个被检查时,它似乎返回一个错误的验证,然后第二个被检查。但如果第二个被检查,然后第一个被检查,则不会返回错误验证。
是否可以进行这样的验证?
【问题讨论】:
标签: javascript validation yup