javascript - 是的,验证需要至少一项选择

标签 javascript reactjs react-hook-form yup

我试图要求在表单中选择两个复选框之一。根据文档,以下内容似乎不起作用:

yearGroups: yup.object().shape({
          primary: yup.bool().when('yearGroups.primary', {
            is: false,
            then: yup
              .bool()
              .oneOf([true], '')
              .required()
          }),
          secondary: yup.bool().when('yearGroups.secondary', {
            is: false,
            then: yup
              .bool()
              .oneOf([true], '')
              .required()
          }),
        }),

最佳答案

试试这个。参见说明here :

const schema = yup.object().shape({
  yearGroups: yup.object().shape(
    {
      primary: yup.bool().when("secondary", {
        is: (secondary) => !secondary,
        then: yup.bool().oneOf([true], "At least one needs to be checked")
      }),
      secondary: yup.bool().when("primary", {
        is: (primary) => !primary,
        then: yup.bool().oneOf([true], "At least one needs to be checked")
      })
    },
    [
      ["primary", "secondary"],
      ["secondary", "primary"]
    ]
  )
});

现场演示

Codesandbox Demo

关于javascript - 是的,验证需要至少一项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69435280/

相关文章:

javascript - 排除来自 querySelectorAll ("input"的所有文本类型输入)

Javascript 在 HTML 上创建按钮并触发 onclick 函数

javascript - MUI + React Hook 表单 : Fill out TextField value but then can't modify the value

javascript - 如何在 react 中验证多步表单

javascript - 两个事件中的 jQuery 函数

javascript - GWT:隐藏移动设备上的地址栏

node.js - 如何使用express、mongoose将mp3上传到mongodb

reactjs - Flow 会取代 PropTypes 吗?

reactjs - react + Electron : Dynamically load user-provided fonts?

javascript - React 钩子(Hook)形式 - 对话框内的字段数组( Material UI)