我在“react”中创建了一个多步骤表单:“^17.0.1”,“yup”:“^0.29.3”和“formik”:“^2.2.3”。
我想检查当用户输入生日 (dobD) 时,根据出生月份 (dobM) 和出生年份 (dobY) 是否有效。
我有 3 个独立的输入。 dobM, dobD, dobY
对 dobD 的第一次检查有效(即用户只能输入 1 到 31 之间的值),但是如果该月少于 31 天(例如 6 月或 9 月)或者该月是 2 月(除闰年外,只有 28 天)。
我尝试使用 Yup.ref 引用日期字段验证中的年份和月份字段,但是如果我输入月份 04,用户仍然可以输入 31,这是不正确的(因为 4 月 (04) 只有 30 天)。
有什么想法可以解决这个问题吗?谢谢你!
这是我当前正在使用的验证:
// Step 3: Date of Birth
Yup.object().shape({
dobM: Yup.string()
.test(
'dobM',
'Invalid Month',
value => {
if (value < 1 || value > 12) {
return false;
}
return true;
}
)
.min(2, 'Invalid')
.max(2, 'Invalid') …Run Code Online (Sandbox Code Playgroud)