当前位置: 首页 > news >正文

ant design vue做表单验证及form表单外验证、父子嵌套多个表单校验

1、form表单验证(若有时遇到输入框有值但是还是触发验证规则了,请检查form表单绑定正确吗、校验规则正确吗、表格数据字段名正确吗)

<a-form:model="formState":label-col="{ span: 8 }":wrapper-col="{ span: 16 }":rules="rules"ref="form"
><a-row :gutter="[0, 24]"><a-col :span="8"><a-form-item name="faqiren" label="发起人" labelAlign="right"><a-input v-model:value="formState.faqiren" disabled /></a-form-item></a-col></a-row></a-form>
<a-button type="primary"  html-type="submit" @click="SubmitReview()">
提交审核</a-button>// 表单数据对象const formState = ref({faqiren: '',});const rules = {faqiren: [{required: true,trigger: 'change',},]};

2、form表单外验证


const form = ref();
const SubmitReview = () => {form.value.validateFields().then((values) => {console.log('验证通过,表单数据为:', values);}).catch((errorInfo) => {console.log('验证失败,错误信息为:', errorInfo);});
};

3、父子嵌套多个表单校验(父组件中有一个form表单,子组件中也有一个form表单,需求是在父组件中统一处理父组件和子组件的2个表单的校验)

 父组件

//父组件
<a-form:model="formState":label-col="{ span: 8 }":wrapper-col="{ span: 16 }":rules="rules"ref="form"
><a-row :gutter="[0, 24]"><a-col :span="8"><a-form-item name="faqiren" label="发起人" labelAlign="right"><a-input v-model:value="formState.faqiren" disabled /></a-form-item></a-col></a-row></a-form>
//子组件
<zhuanchu ref="form1" v-if="formState.biandongleixing == 'zhuanchu'"></zhuanchu><a-button type="primary"  html-type="submit" @click="SubmitReview()">
提交审核</a-button>// 表单数据对象const formState = ref({faqiren: '',});const rules = {faqiren: [{required: true,trigger: 'change',},]};const form = ref();
const SubmitReview = () => {
//父组件校验form.value.validateFields().then((values) => {console.log('验证通过,表单数据为:', values);}).catch((errorInfo) => {console.log('验证失败,错误信息为:', errorInfo);});
//子组件校验form1.value.getDom().validateFields().then((values) => {console.log('验证通过,表单数据为:', values);}).catch((errorInfo) => {console.log('验证失败,错误信息为:', errorInfo);});
};

子组件 

//子组件
<a-form:model="formState":label-col="{ span: 8 }":wrapper-col="{ span: 16 }":rules="rules"ref="form2"
><a-row :gutter="[0, 24]"><a-col :span="8"><a-form-item name="nianling" label="年龄" labelAlign="right"><a-input v-model:value="formState.nianling" disabled /></a-form-item></a-col></a-row></a-form>// 表单数据对象const formState = ref({nianling: '',});const rules = {nianling: [{required: true,trigger: 'change',},]};const form2=ref()const getDom=()=>{return form2.value}defineExpose({getDom})

http://www.lryc.cn/news/449355.html

相关文章:

  • 爱速搭百度低代码开发平台
  • 2024icpc(Ⅱ)网络赛补题E
  • mac怎么设置ip地址映射
  • StringReader 使用 JAXB自动将 XML 数据映射到 Java 对象
  • 【系统架构设计师】专题:系统分析和设计
  • Lambda表达式(Java)
  • 不同的子序列
  • CI24R1——精简版Si24R1,高性价比替代XN297开发资料
  • MySQL递归查询笔记
  • java中的位运算
  • llamafactory0.9.0微调qwen2vl
  • Electron 隐藏顶部菜单
  • 软件测试学习笔记丨curl命令发送请求
  • STM32+PWM+DMA驱动WS2812 —— 2024年9月24日
  • MMD模型及动作一键完美导入UE5-IVP5U插件方案(二)
  • C++函数指针
  • 汽车信息安全 -- 再谈车规MCU的安全启动
  • [Linux]从零开始的Linux的远程方法介绍与配置教程
  • 手机改IP地址怎么弄?全面解析与操作指南
  • 【React】useState 和 useRef:项目开发中该如何选择
  • python装饰器用法
  • AI 写作太死板?原因竟然是这个!
  • ansible实用模块
  • 【JavaScript】JIT
  • Matlab实现麻雀优化算法优化回声状态网络模型 (SSA-ESN)(附源码)
  • 从 TCP Reno 经 BIC 到 CUBIC
  • 工厂模式与建造者模式的区别
  • 电脑usb接口封禁如何实现?5种禁用USB接口的方法分享!(第一种你GET了吗?)
  • 有效的括号
  • Vue3.0面试题汇总