当表单提供有效的输入数据时,为啥我的表单按钮没有打开? (包括代码沙箱)

Posted

技术标签:

【中文标题】当表单提供有效的输入数据时,为啥我的表单按钮没有打开? (包括代码沙箱)【英文标题】:Why isn't my form's button turning on when the form is supplied valid input data? (Includes code sandbox)当表单提供有效的输入数据时,为什么我的表单按钮没有打开? (包括代码沙箱) 【发布时间】:2022-01-05 10:27:18 【问题描述】:

我正在使用 Material UI 的 Autocomplete multiple TextField、React Hook Form 和 Yup 来验证表单输入。

以下表单要求用户输入星期几。如果他们输入“每天”,其他选项将被禁用/如果用户输入任何一天,“每天”选项将被禁用。

在我的表单上,我已设置为如果表单输入无效,提交按钮将保持禁用状态。我正在尝试使用以下 Yup 验证模式来执行此操作,但它不起作用...

const validationSchema = Yup.object().shape(
daysOfWeek: Yup.array()
    .of(
        Yup.object().shape(
            label: Yup.string(),
            disabled: Yup.boolean(),
        )
    )
    .min(1, "Days of the week are required")
);

您能否检查一下我的代码沙箱,看看可能出了什么问题?提前非常感谢!

https://codesandbox.io/s/mystifying-cookies-n5iyl

【问题讨论】:

【参考方案1】:

我终于弄明白了!

更新的代码沙箱:https://codesandbox.io/s/mystifying-cookies-n5iyl?file=/src/App.js

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于当表单提供有效的输入数据时,为啥我的表单按钮没有打开? (包括代码沙箱)的主要内容,如果未能解决你的问题,请参考以下文章

为啥当我添加一个选择选项来选择表单字段时不会更改为有效?

为啥我的数字类型的表单输入没有得到任何价值?

当通过链接或后退按钮打开时,强制 JSF 刷新页面/视图/表单

数据验证后提交表单

为啥异步服务不填写复选框表单面板?

Angular 2:仅当表单数据有效时才将表单数据从子级传递给父级