vue 动态添加el-input的实现逻辑

目录

一、效果图

二、实现逻辑

一、效果图

二、实现逻辑

将需要动态添加的表单项项的绑定值存为一个数组

以循环的方式展示form表单

点击`+`按钮触发事件,向数组中新加一个item

点击`-`按钮触发事件,根据循环的得到的index来删除数组中相对应位置的item三、代码实现

<template> <div> <el-button @click="isDilogShow = true" plain>动态添加input</el-button> <el-dialog title="特工安排" :visible.sync="isDilogShow" :close-on-click-modal="false" width="400px" > <el-form ref="form" :model="form"> <el-form-item> <div v-for="(item, index) in List" :key="index" class="content"> <el-form-item> <el-input class="numrule" type="number" style="max-width: 130px" v-model.number="item.num" placeholder="请输入代号" @input=" (val) => { handleNumChange(val, index) } " ></el-input> <span>搭档为</span> <el-select v-model="item.name" placeholder="请选择" style="max-width: 130px" > <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.name" > </el-option> </el-select> <!-- 若表单中没有值则不可以新增item(可根据自己的需求进行更改哦) --> <span v-if="index === 0" :class=" item.num === null || item.name === '' ? 'change-icon-add' : 'change-icon' " ><i :style="{ pointerEvents: item.num === null || item.name === '' ? 'none' : 'auto', }" class="el-icon-circle-plus-outline" @click="addItem()" ></i ></span> <span v-else class="change-icon" @click="deleteItem(index)" ><i class="el-icon-remove-outline"></i ></span> </el-form-item> </div> </el-form-item> <el-form-item style="text-align: right;"> <el-button @click="isDilogShow = false">取消</el-button> <el-button type="primary" @click="onSubmit">确认</el-button> </el-form-item> </el-form> </el-dialog> </div> </template> <script> export default { name: "About", data() { return { isDilogShow: false, form: { name: "", }, List: [{ num: "", name: "" }], userList: [ { id: 1, name: "麻雀" }, { id: 2, name: "夜莺" }, { id: 3, name: "百灵" }, ], } }, methods: { handleNumChange(v, i) { console.log(v) console.log(i) }, onSubmit() { console.log("submit!") }, // 新增任务分配 addItem() { this.List.push({ num: "", name: "", }) }, deleteItem(i) { this.List.splice(i, 1) }, }, } </script> <style lang="scss"> .content { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; span{ margin: 0 8px; } .change-icon { font-size: 26px; cursor: pointer; } // 点击事件是否可用 ----> pointer-events:none; .change-icon-add { font-size: 26px; cursor: no-drop; } } .numrule { input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; } /* Firefox浏览器 */ input[type="number"] { -moz-appearance: textfield; } } </style>

到此这篇关于vue 动态添加el-input的文章就介绍到这了,更多相关vue 动态添加el-input内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    确定java按钮响应事件的代码

    确定java按钮响应事件的代码,,* 阅读本文可以结合最后在java登录窗口界面下面是一个链接。 是定义的容器。 容器(CP =得到内容面板); / /

    雷蛇设置宏|雷蛇设置宏循环

    雷蛇设置宏|雷蛇设置宏循环,,雷蛇设置宏循环使用雷蛇软件设置宏驱动的方法如下:1、今天小编就以雷蛇鼠标为例,介绍宏定义的使用。当刚买的鼠

    90后瓶门事件图片

    90后瓶门事件图片,,现在孩子们还太早,有些女孩子总是在门口等一会儿,最近发生了一次酒瓶门事件。 近日,山东一家寄宿学校的一名女生带着一瓶

    potplayer设置|potplayer设置循环播放

    potplayer设置|potplayer设置循环播放,,potplayer设置循环播放戴尔电脑上面比较好用的软件有哪些?萊垍頭條敬业签是电脑/移动端/多端云同步

    为什么WPS表单总是不打开

    为什么WPS表单总是不打开,,为什么WPS表格总是打不开??百度知道为您找到了6条优质回答span>a,type:cluster">很有可能文件已经损坏。恢复

    数列求和快捷键|数组求和快捷键

    数列求和快捷键|数组求和快捷键,,数组求和快捷键1,这是文本型数组直接运算 不可能 除非单个的取出来分割后转数值型,再找相同的X[1],进行X[2

    laravel-admin|自定义表单与验证

    laravel-admin|自定义表单与验证,表单,场景,场景:很多时候,由于我们业务场景比较特殊,需要自定义表单,然后框架给我提供了对应表单组建!案列:以

    唐山打人事件视频源自哪里

    唐山打人事件视频源自哪里,华为,视频,唐山打人事件视频源自哪里唐山打人事件视频来源于哪里?为什么这个网友人敢于发出这个视频?不怕被威胁

    Win7系统怎么打开事件查看器?

    Win7系统怎么打开事件查看器?,查看器,事件, win7系统中有一个事件查看器,事件查看器是重要的系统管理软件,通过它可以了解到某项功能配置、

    怎么设置循环录像|如何设置循环录像

    怎么设置循环录像|如何设置循环录像,,1. 如何设置循环录像手机拍视频可以点暂停,再有要拍摄的内容可以重新点拍摄,这样拍下的多段视频就可以