element ui 对数组里面的多个相同的字段进行校验在

news2025/1/23 0:07:56

element ui 对数组里面的多个相同的字段进行校验

在 Element UI 中,如果需要对数组中的多个相同字段进行校验(例如动态生成的表单字段),可以通过动态绑定 prop 和 rules 来实现。以下是具体的实现方法:


示例场景

假设有一个数组 items,数组中的每个对象包含一个字段 value,我们需要对每个 value 进行校验。


实现代码

vue

<template>
  <el-form :model="form" :rules="rules" ref="form">
    <!-- 动态生成表单项 -->
    <el-form-item
      v-for="(item, index) in form.items"
      :key="index"
      :label="'字段 ' + (index + 1)"
      :prop="'items.' + index + '.value'"
      :rules="rules.value"
    >
      <el-input v-model="item.value"></el-input>
    </el-form-item>

    <el-form-item>
      <el-button type="primary" @click="submitForm">提交</el-button>
      <el-button @click="addItem">添加字段</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        items: [
          { value: '' }, // 初始字段
        ],
      },
      rules: {
        value: [
          { required: true, message: '请输入字段值', trigger: 'blur' },
          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
        ],
      },
    };
  },
  methods: {
    // 提交表单
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('提交成功');
          console.log('表单数据:', this.form.items);
        } else {
          console.log('校验失败');
          return false;
        }
      });
    },
    // 添加新字段
    addItem() {
      this.form.items.push({ value: '' });
    },
  },
};
</script>

关键点说明

  1. 动态绑定 prop

    • 使用 :prop="'items.' + index + '.value'" 动态绑定每个表单项的 prop

    • prop 的格式需要与 form 对象的结构一致。例如,items.0.value 表示 form.items[0].value

  2. 动态绑定 rules

    • 使用 :rules="rules.value" 动态绑定校验规则。

    • 所有字段共享相同的校验规则。

  3. form 数据结构

    • form.items 是一个数组,每个数组项是一个对象,包含需要校验的字段(如 value)。

  4. 动态添加字段

    • 通过 addItem 方法动态向 form.items 中添加新字段。

  5. 表单校验

    • 使用 this.$refs.form.validate 方法触发表单校验。

    • 如果所有字段都通过校验,valid 为 true,否则为 false


校验效果

  • 每个字段都会根据 rules.value 的规则进行校验。

  • 如果某个字段未通过校验,Element UI 会自动显示错误提示。

  • 动态添加的字段也会自动应用校验规则。


扩展:自定义校验规则

如果需要为每个字段设置不同的校验规则,可以在 rules 中动态生成规则。例如:

javascript

rules: {
  value: (index) => [
    { required: true, message: `请输入字段 ${index + 1}`, trigger: 'blur' },
    { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
  ],
},

然后在 el-form-item 中动态绑定规则:

vue

:rules="rules.value(index)"


总结

  • 使用动态 prop 和 rules 可以实现对数组中多个相同字段的校验。

  • 通过 form.items 动态管理字段数据,支持动态添加和删除字段。

  • Element UI 的表单校验机制非常灵活,能够满足复杂的表单校验需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证9)

测试数据库中只有之前记录温湿度及烟雾值的表中数据较多&#xff0c;在该数据库中增加AppUser表&#xff0c;用于登录用户身份查询&#xff0c;数据库表如下所示&#xff1a;   项目中安装SqlSugarCore包&#xff0c;然后修改控制器类的登录函数及分页查询数据函数&#xff…

leetcode-75-颜色分类

文章目录 1. 归并排序2. 计数3. 按照题目要求&#xff0c;原地腾挪 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地 对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表…

html,css,js的粒子效果

这段代码实现了一个基于HTML5 Canvas的高级粒子效果&#xff0c;用户可以通过鼠标与粒子进行交互。下面是对代码的详细解析&#xff1a; HTML部分 使用<!DOCTYPE html>声明文档类型。<html>标签内包含了整个网页的内容。<head>部分定义了网页的标题&#x…

学习记录之原型,原型链

构造函数创建对象 Person和普通函数没有区别&#xff0c;之所以是构造函数在于它是通过new关键字调用的&#xff0c;p就是通过构造函数Person创建的实列对象 function Person(age, name) {this.age age;this.name name;}let p new Person(18, 张三);prototype prototype n…

go语言zero框架通过chromedp实现网页在线截图的设计与功能实现

在 GoZero 框架中实现网页在线截图的功能&#xff0c;可以通过集成 chromedp 库来控制 Chrome 浏览器进行截图。chromedp 是一个基于 Chrome DevTools 协议的 Go 包&#xff0c;可以用来在 Go 程序中模拟浏览器操作&#xff0c;如页面截图、DOM 操作、表单提交等。 下面是一个…

以 RFID 为钥,开启民兵装备管理的科技之门

民兵配备的武器及装备涵盖了各式武器、弹药及军事技术设备&#xff0c;其管理的优良直接决定了民兵的作战效能。鉴于民兵装备普遍面临老化、维护支援不充分等问题&#xff0c;迫切需要迅速建立完善的民兵装备管理新体系。这一转变将推动民兵装备由数量扩张转向质量提升&#xf…

电脑办公技巧之如何在 Word 文档中添加文字或图片水印

Microsoft Word是全球最广泛使用的文字处理软件之一&#xff0c;它为用户提供了丰富的编辑功能来美化和保护文档。其中&#xff0c;“水印”是一种特别有用的功能&#xff0c;它可以用于标识文档状态&#xff08;如“草稿”或“机密”&#xff09;、公司标志或是版权信息等。本…

llama-factory实战: 基于qwen2.5-7b 手把手实战 自定义数据集清洗 微调

基于qwen2.5 手把手实战 自定义数据集 微调&#xff08;llama-factory&#xff09; 准备工作1.数据集准备&#xff08;例:民法典.txt&#xff09;2.服务器准备&#xff08;阿里云 DSW 白嫖&#xff09;3.环境配置pip 升级模型下载微调助手 4.数据集处理脚本文件4.1文本分割(ber…

微透镜阵列精准全检,白光干涉3D自动量测方案提效70%

广泛应用的微透镜阵列 微透镜是一种常见的微光学元件&#xff0c;通过设计微透镜&#xff0c;可对入射光进行扩散、光束整形、光线均分、光学聚焦、集成成像等调制&#xff0c;进而实现许多传统光学元器件难以实现的特殊功能。 微透镜阵列&#xff08;Microlens Array&#x…

详解单片机学的是什么?(电子硬件)

大家好&#xff0c;我是山羊君Goat。 单片机&#xff0c;对于每一个硬件行业的从业者或者在校电子类专业的学生&#xff0c;相信对于这个名词都不陌生&#xff0c;但是掌没掌握就另说了。 那单片机到底学的是什么呢&#xff1f; 其实单片机在生活中就非常常见&#xff0c;目前…

基于Docker的Spark分布式集群

目录 1. 说明 2. 服务器规划 3. 步骤 3.1 要点 3.2 配置文件 3.2 访问Spark Master 4. 使用测试 5. 参考 1. 说明 以docker容器方式实现apache spark计算集群&#xff0c;能灵活的增减配置与worker数目。 2. 服务器规划 服务器 (1master, 3workers) ip开放端口备注ce…

9. 神经网络(一.神经元模型)

首先&#xff0c;先看一个简化的生物神经元结构&#xff1a; 生物神经元有多种类型&#xff0c;内部也有复杂的结构&#xff0c;但是可以把单个神经元简化为3部分组成&#xff1a; 树突&#xff1a;一个神经元往往有多个树突&#xff0c;用于接收传入的信息。轴突&#xff1a;…

web-view环境下,H5页面打开其他小程序

在Web-view环境下&#xff0c;H5页面无法直接打开其他小程序。正确的实现方式是先从H5页面跳转回当前小程序&#xff0c;再由当前小程序跳转到目标小程序。具体实现方法如下&#xff1a; H5页面跳转回小程序时&#xff0c;调用wx.miniProgram.navigateTo()方法。 小程序跳转到…

数据恢复常用方法(三)如何辨别固态硬盘故障类型

数据恢复首先需要辨别固态硬盘故障类型&#xff0c;只有先确认故障类型&#xff0c;才能进行下一步动作 如下是一种常见的场景&#xff0c;固态硬盘无法识别&#xff0c;接入电源与数据线&#xff0c;电脑的磁盘管理不显示任何信息。 第一步&#xff1a;确认硬件状态&#xff…

Android Studio打包APK

1.导出APK安装包 如果是首次打包&#xff0c;Create new 单击蓝色对话框右边文件夹&#x1f4c2;图标 &#xff0c;选择密钥保存路径&#xff0c;然后在下方File name对话框中填写您想要名称&#xff0c;再点击OK回到密钥创建对话框。 在此对话框中填写密码&#xff08;Passwo…

当使用 npm 时,出现 `certificate has expired` 错误通常意味着请求的证书已过期。

当使用 npm 时&#xff0c;出现 certificate has expired 错误通常意味着请求的证书已过期。这可能是由于以下几种情况&#xff1a; 网络代理问题&#xff1a;如果使用了网络代理&#xff0c;代理服务器的证书可能过期或配置有误。系统时间错误&#xff1a;系统时间不准确可能导…

AWS IAM用户启用MFA认证

1. 进入IAM界面&#xff0c;点击Add user 2. 创建用户 3. 添加用户权限&#xff0c;例如这里赋予power user权限 4. 用手机下载MFA软件&#xff0c;进入App Store搜索mfa即可得到Google Authenticator&#xff0c;点击安装 5. 用户创建后&#xff0c;进入点击用户名进入Securi…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证8)

为进一步测试通过请求头传递token进行身份验证&#xff0c;在main.htm中增加layui的数据表格组件&#xff0c;并调用后台服务分页显示数据&#xff0c;后台分页查询数据接口如下所示&#xff08;测试时&#xff0c;直接将数据写死到代码中&#xff0c;没有查询数据库&#xff0…

Python新春烟花

目录 系列文章 写在前面 技术需求 完整代码 下载代码 代码分析 1. 程序初始化与显示设置 2. 烟花类 (Firework) 3. 粒子类 (Particle) 4. 痕迹类 (Trail) 5. 烟花更新与显示 6. 主函数 (fire) 7. 游戏循环 8. 总结 注意事项 写在后面 系列文章 序号直达链接爱…

【leetcode 24】151.翻转字符串里的单词==❗没看懂❗==

思路&#xff1a; 一些同学会使用split库函数&#xff0c;分隔单词&#xff0c;然后定义一个新的string字符串&#xff0c;最后再把单词倒序相加&#xff0c;那么这道题题目就是一道水题了&#xff0c;失去了它的意义。 所以这里我还是提高一下本题的难度&#xff1a;不要使用辅…