首页 > 其他分享 >Element Plus 动态表单验证

Element Plus 动态表单验证

时间:2023-11-07 18:11:49浏览次数:33  
标签:渲染 表单 Plus 注册 formRefArr 长度 Element ref formList

<div v-for="(item, index) in formList" :key="index">
   <el-form :ref="(el) => { formRefs(el) }" :model="item">
    <el-form-item>
      <el-input v-model="item.name"></el-input>
    </el-form-item>
    <el-form-item>

  <el-button @click="save(index)">保存</el-button>
    </el-form-item>

  </el=form>
   </div> <script setup> import { ref } from "vue"; let formRefArr = [] const formRefs = (el: any) => { formRefArr.push(el) }
const formList = ref([])
const save = async (index) => {
  await formRefArr[index].validate((valid: boolean) => {     if (!valid) {}
}
</script>

在v-for中,ref注册时,如果使用箭头函数或者函数的方式,会在每次重新渲染时都注册一遍,而不是覆盖。

举例来说,如果formList长度为3,那么:

初次渲染时,会注册3个ref到formRefArr 重新渲染时,又会再注册3个ref,这时formRefArr长度变成6 以此类推,每重新渲染一次,都会注册n个ref到formRefArr

这样最终formRefArr的长度就会和渲染次数*formList长度成正比,和formList长度不同。

在每次动态添加formList 的时候都应该formRefArr = []

 

 

标签:渲染,表单,Plus,注册,formRefArr,长度,Element,ref,formList
From: https://www.cnblogs.com/zpfqi/p/17815562.html

相关文章

  • 11月7日form表单与input框以及select标签
    目录form表单与input框form表单input标签input其它属性说明:form与其它标签以及input的应用再来展示一下禁用以及隐藏的属性select标签form表单与input框form表单功能:表单用于向服务器传输数据,从而实现用户与web服务器的交互表单能够包含input系列标签,比如文本字段、复选框、......
  • 通过POWERSHELLPLUS示例脚本学PowerShell
    在AD的管理脚本中,基本都是通过ADSI接口获取AD操作接口,其中涉及PowerShell的原生cmdlets的都大同小异。今天看看AD下的Function中的脚本,有新东西可以学习。##=====================================================================##Title:Add-IADGroupMember##Descr......
  • element-ui选中节点包含子节点和父节点
    //代码: constcheckedNodes=this.$refs.asyncTree.getCheckedNodes(false,true) //遍历一下就可以获得所有id constids=checkedNodes.map(item=>item.id) console.log(ids)  ......
  • elementUI确认消息弹框区分取消和关闭按钮
    预期效果:说明:默认情况下,elementUI的确认消息弹框中取消按钮和右上角关闭按钮,走的是同一个方法,也就是catch方法的回调,如果项目中有区分,默认的是无法支持的。所以要重新配置一下,话不多说,上代码://res.msg表示提示信息内容this.$confirm(res.msg,'提示',{con......
  • springboot mybatis-plus 登录接口
    下面是使用SpringBoot和MyBatis-Plus实现登录接口的示例代码:添加依赖在pom.xml文件中添加以下依赖:<dependencies><!--SpringBoot--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</a......
  • springboot+mybatis-plus批量删除
    可以使用Mybatis-Plus提供的deleteBatchIds方法来实现批量删除。示例代码:@AutowiredprivateMybatisPlusMappermybatisPlusMapper;publicvoiddeleteBatch(List<Long>ids){mybatisPlusMapper.deleteBatchIds(ids);}其中,MybatisPlusMapper是你的Mapper接口,继承了BaseMa......
  • Antd Form 表单数据没法回显问题
    AntdForm表单数据没法回显问题antd环境4.*版本问题复现在一个组件中,给这个组件传递一个配置项,展示一些表单组件如输入框、下拉框等组件,再传递一个数据,让其数据回显在我们的表单组件中//就正常一个表单,里面通过循环配置项展示formitem里的内容,我们可以在formitem中设......
  • 通过mybatis-plus的自定义拦截器实现控制 mybatis-plus的全局逻辑删除字段的控制 (修改
    需求:过滤部分请求不实现mybatis-plus的逻辑删除看到网上关于mybatis-plus的自定义拦截器的文章有的少想了想自己写了一篇欢迎参考指正通过springboot的拦截器在请求进来时标记需要实现的需求的逻辑importlombok.Data;@DatapublicclassSyncBo{privateBoolean......
  • 解锁JVS低代码表单流水号配置的秘密:一步步教你如何设置
    在数字化时代,表单成为了我们日常生活和工作中不可或缺的一部分。无论是在线申请、数据录入还是业务流程管理,表单都发挥着重要的作用。为了确保数据的准确性和可追溯性,流水号的概念应运而生。流水号作为表单数据记录的唯一标识,为每一份数据赋予了独特的身份,使得数据的处理和管理更加......
  • element-ui 表单验证注意事项
    1、表单验证注意其中的每个el-form-item标签中,都有一个prop,其中的值是我们rules对象中的某个属性。然后我们v-model绑定的值也必须是这个属性比如我们的字段是userName,我们的prop还是name时,校验失效<el-form-itemlabel="名称"prop="name"><el-inputv-model="form.......