js 非常好用且优雅的步骤校验、提交校验、自定义校验写法
很多form表单和其它场景,在提交前或进入下一步前需要校验逻辑,这里总结了一个通用方法:
const form = { name: '', age: 20, time: ['2100-01-01', '2100-01-01'] } const validForm = () => { // 校验状态总结 let valid = { status: true, message: '' } // 解构、重命名等操作 const { name, age, time: [timeStart, timeEnd] } = form // 校验逻辑集合。[校验错误的提示信息,返回true的函数] const validList = [ ['name字段不能为空!', () => name], ['age字段值不能大于19!', () => age <= 19], ['name字段长度大于4时,age字段不能小于10!', () => name.length <= 4 || (name.length > 4 && age >= 10)], [ 'age字段为19时,time字段的开始时间必须小于于当前时间,结束时间必须大于当前时间', () => { if (age === 19) { return +new Date(timeStart) < +new Date() && +new Date(timeEnd) > +new Date() } else { return true } } ] ] // 按数组顺序往下校验,遇到一个不成功就退出 for (const list of validList) { if (!list[1]()) { valid.status = false valid.message = list[0] break } } if (!valid.status) alert(valid.message) return valid.status } // 提交函数 const submit = () => { if (!validForm()) return false alert('提交成功') } submit() // 提示:name字段不能为空 form.name = 'abcde' submit() // 提示:age字段值不能大于19 form.age = 5 submit() // 提示:name字段长度大于4时,age字段不能小于10 form.age = 19 submit() // 提示:age字段为19时,time字段的开始时间必须小于于当前时间,结束时间必须大于当前时间 form.time = ['2018-01-01', '2100-01-01'] submit() // 提交成功
自律使我自由
分类:
Javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现