elementUI 循环出来的表单,怎么做表单校验?

数据结构如下:
diversionParamList: { length: null, positionNumber: null, value: null, }

思路:可根据 index 动态绑定 :props 属性值,校验规则写在:rules

javascript 复制代码
<div class="config-item" v-for="(item, index) in form.diversionParamList" :key="index">
  <el-form-item :label="`分流配置${index + 1}`" :prop="`diversionParamList.${index}.positionNumber`"
    :rules="{ required: true, message: '请输入位置', trigger: 'blur' }">
    <span class="config-item-text">位置:</span>
    <el-input-number size="small" style="width: 100px" v-model="item.positionNumber" :min="0"></el-input-number>
  </el-form-item>
  <el-form-item :prop="`diversionParamList.${index}.length`"
    :rules="{ required: true, message: '请输入长度', trigger: 'blur' }">
    <span class="config-item-text">长度:</span>
    <el-input-number size="small" style="width: 100px" v-model="item.length" :min="1"></el-input-number>
  </el-form-item>
  <el-form-item :prop="`diversionParamList.${index}.value`"
    :rules="[{ required: true, message: '请输入值', trigger: 'blur' }, { pattern: /^[0-9A-Fa-f]+$/, message: '必须是1-9或16进制字符:a-f或A-F' }]">
    <span class="config-item-text">值:</span>
    <el-input :maxlength="item.length * 2" v-model="item.value" placeholder="请输入值" style="width: 150px">
      <template #prefix>0x&nbsp;</template>
    </el-input>
  </el-form-item>

  <div class="button-group">
    <el-button v-if="index === form.diversionParamList.length - 1" type="primary" size="small"
      @click="addFormConfig()">新增
    </el-button>
    <el-button v-if="index !== 0" type="danger" size="small" @click="delFormConfig(index)">删除
    </el-button>
  </div>
</div>
相关推荐
To_OC19 小时前
从一个颜色选择器说起:我终于整明白了 React+TS 里的 model 与 api 分层
前端·react.js·typescript
赵大仁19 小时前
浏览器端 RAG:Transformers.js + WebGPU 本地检索入门
前端·ai·react·webgpu·rag
zyplayer-doc19 小时前
同一份制度别复制到多个知识库:用zyplayer-doc引用文档解决重复维护
javascript·人工智能·智能手机·开源·ocr
木叶丸19 小时前
从 Loop 到 Graph:AI 智能体协作系统工程指南
前端·后端·架构
吴懿不在 不负信仰20 小时前
从jQuery谈库与框架的设计之优劣
前端·javascript·jquery
灵析表格20 小时前
灵析表格手机号处理函数深度分析报告
前端·网络·json·wps·灵析表格·excel公式盒子
智海深蓝21 小时前
智慧渔业海上养殖数字孪生实践方向与难点拆解分析
java·前端·网络
DsirNg21 小时前
用原生 HTML5 视频与 Canvas 实现浏览器端视频抽帧封面
javascript·canvas·视频抽帧·前端实战·html5 video·浏览器 api
丁引21 小时前
《数据清洗的艺术:如何用20行核心逻辑优雅地删除无标签图片》
前端·数据库·python
Bigger21 小时前
Han:一个让 AI Agent 也能做出高级中国风页面的 CSS 设计系统
前端·ai编程·设计