vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法

vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法

先看一下效果图(想在表单里动态的增删 form-item,然后添加rules,校验其必填项;

):

html部分

javascript 复制代码
<div v-for="(item, index) in form.labels" :key="index" class="label">
    <el-form-item label="名称:"
    :prop="'labels.' + index + '.name'"
    :rules="{
          required: true, message: '请输入', trigger: 'blur'
    }"
    class="middleInput">
      <el-input v-model.trim="item.name" maxlength="30" placeholder="请输入"></el-input>
      <i class="el-icon-circle-plus-outline icon" v-if="(index === (form.labels.length - 1))" @click.prevent="addKey(item)"></i>
      <i class="el-icon-remove-outline icon" v-if="(form.labels.length > 1)" @click.prevent="removeKey(item, index)"></i>
    </el-form-item>
    <el-form-item label="值:"
    :prop="'labels.' + index + '.value'"
    :rules="{
          required: true, message: '请输入', trigger: 'blur'
    }"
    class="middleInput">
      <el-input maxlength="100" show-word-limit type="textarea" :rows="3" v-model.trim="item.value" placeholder="请输入"></el-input>
    </el-form-item>
 </div>

js

javascript 复制代码
//data:
form: {
    labels: [{
    	name: '',
    	value: ''
    }]
},

// methods:
addKey (item) {
  this.form.labels.push({
    name: '',
    value: ''
  })
},
removeKey (item, index) {
  this.form.labels.splice(index, 1)
},

注意

核心代码:

javascript 复制代码
:prop="'labels.' + index + '.name'"
:rules="{
       required: true, message: '请输入', trigger: 'blur'
 }"
  • prop里的值有格式要求,以本demo为例:"表单属性数组key名 + '.' + 索引值 + '.' + 数组里对象的key名";
  • rules里填写校验不成功触发条件和提示语;
相关推荐
小鹏linux5 分钟前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水1 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger1 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)1 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态1 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态2 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart2 小时前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter
放下华子我只抽RuiKe52 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
XinZong2 小时前
OpenClaw 实现双重心跳(Heartbeat)+ clawreach虾聊项目实现
javascript
IT_陈寒3 小时前
Redis缓存击穿把我整不会了,原来还有这手操作
前端·人工智能·后端