checkbox表单校验 至少选中一个Checkbox , 否则会报错

2024-06-12 21:20

本文主要是介绍checkbox表单校验 至少选中一个Checkbox , 否则会报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目背景 :  react + ant
需求 : 需实现至少选中一个Checkbox , 否则会报错
需求如下 : 


注意 : Input, Select, DatePicker可以直接处理Form.Item的验证规则 ,  但Checkbox不行 , 需自定义验证规则

实现 : 

 

  // 自定义的checkbox校验规则--星期const validateAtLeastOneCheckbox = (_, value) => {// 假设 isChecked1-7 是您在外部维护的state,反映了Checkbox的选中状态const isCheckedArray = [isChecked1,isChecked2,isChecked3,isChecked4,isChecked5,isChecked6,isChecked7]const isSelected = isCheckedArray.some(Boolean) // 检查是否有至少一个为trueif (!isSelected) {// 如果没有选中任何一项,则返回错误信息return Promise.reject(new Error('请选择至少一个备份周期'))}return Promise.resolve()}<Form.Itemcolon={false}label={t('backupsTOP9')}className='time'name='week'rules={[{validator: validateAtLeastOneCheckbox,message: '请选择备份周期'}]}><div className='' style={{ width: 1100 }}><Checkboxchecked={isChecked1}onChange={e => {setIsChecked1(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP10')}</Checkbox><Checkboxchecked={isChecked2}onChange={e => {setIsChecked2(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP11')}</Checkbox><Checkboxchecked={isChecked3}onChange={e => {setIsChecked3(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP12')}</Checkbox><Checkboxchecked={isChecked4}onChange={e => {setIsChecked4(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP13')}</Checkbox><Checkboxchecked={isChecked5}onChange={e => {setIsChecked5(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP14')}</Checkbox><Checkboxchecked={isChecked6}onChange={e => {setIsChecked6(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP15')}</Checkbox><Checkboxchecked={isChecked7}onChange={e => {setIsChecked7(e.target.checked)}}style={{ marginLeft: 60, fontSize: 16, width: 80 }}>{t('backupsTOP16')}</Checkbox></div></Form.Item>

这篇关于checkbox表单校验 至少选中一个Checkbox , 否则会报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055367

相关文章

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结