a-form校验同时存在warning和error,并且warning不影响提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <a-form-item label= "名称" name= "remark" :validate-status= "validateRemarkStatus" :help= "validateRemarkHelp" > <a-input v-model:value= "formState.remark" placeholder= "请输入名称" /> </a-form-item> const validateRemarkStatus = ref( 'success' ); const validateRemarkHelp = ref( '' ); const validateRemark = async (_rule: Rule, value: string) => { if (value === '' ) { validateRemarkStatus.value = 'error' ; validateRemarkHelp.value = '请输入名称' ; return Promise.reject(); } else { // 名称支持输入中英文、数字、短横线、下划线 ,字符数≤20 const remarkReg = /^[\u4e00-\u9fa5a-zA-Z0-9-_]{1,20}$/; if (!remarkReg.test(value)) { validateRemarkStatus.value = 'error' ; validateRemarkHelp.value = '由中英文、数字、短横线、下划线组成,不超过20个字符' ; return Promise.reject(); } else { const repeatName = allAppRemark.value.filter( (item) => item.toUpperCase() === value.toUpperCase() && value !== oldRemark, ); if (repeatName.length) { validateRemarkStatus.value = 'error' ; validateRemarkHelp.value = '名称不能重复命名' ; return Promise.reject(); } } const envReg = /\b(dev|test|ceshi|stage|pre|pro|prod)\b/; if (envReg.test(value)) { validateRemarkStatus.value = 'warning' ; validateRemarkHelp.value = '命名不规范,建议名称中不包含test、ceshi、dev、pre、stage、pro、prod等环境信息' ; return Promise.resolve(); } validateRemarkStatus.value = 'success' ; validateRemarkHelp.value = '' ; return Promise.resolve(); } }; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通