React Formik Yup验证,用于检查小于数字的输入值



我有一个使用Formik构建的表单。表单中有两个单选按钮,当单击一个单选按钮时,将显示一个输入字段。我需要使用Yup验证来验证该输入字段。该值应小于9999.99,并且可以同时接受整数值和十进制值。我尝试过的代码如下:

Form.js

<RadioGroup
name="callBackSelectionType"
initialValues={[
{
value: CALLBACKREQUIRED,
label: "Lower callback limit",
},
{
value: REMOVECALLBACK,
label: "Reset to default $10,000",
},
]}
/>
{values["callBackSelectionType"] === CALLBACKREQUIRED && (
<div className="fields-container">
<InputField
label={CALLBACK_LIMIT}
name="greaterThan"
placeholder="$0.00 to $9,999.99"
errorMessage={getRequiredMessage(CALLBACK_LIMIT)}
/>
</div>
)}

Schema.js

const schema = yup.object().shape({
callBackSelectionType: yup.string().required(),
greaterThan: yup.string().when("callBackSelectionType", (val, schema) => {
if (val === "CALLBACKREQUIRED") {
return yup
.number()
.label(Labels.CALLBACKLIMIT)
.lessThan(9999.99, "Limit should be less than 9999.99")
.required(Messages.REQUIRED_FIELD);
}
else return yup.string().notRequired();
}),
});

此验证适用于它是必填字段,但不适用于它应该是可接受的十进制并且应该小于9999.99的条件。请帮忙。

提前感谢

您能尝试使用.max(9999.99, "Commission should not be more than 2 digits")吗?

相关内容

  • 没有找到相关文章

最新更新