vue+element UI动态增减表单

这篇具有很好参考价值的文章主要介绍了vue+element UI动态增减表单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    写在前面:因为最近有个需求,需要新增联系人,而联系人数量并不确定,需要根据需要添加表单,一个联系人对应一个表单。

   效果是这样的:

vue+element UI动态增减表单

vue+element UI动态增减表单

vue+element UI动态增减表单

    思路:①写个div,把表单放在里面,旁边放2个按钮,添加和删除,且只有1个元素的时候不能显示删除按钮

               ②先用一个空的list,结合v-for来显示div,每次新增,就push一个新的空元素,点击删除,则splice一个元素

               ③,如果是点击“编辑按钮”,那么就要把list先初始化为已有数组

    具体实现代码如下:

 一、写好数组

            list:[],
            addForm:[],
            addStr:"",
            tempList:[
                {
                customerContactKey:"",
                contactInfo: "",//联系信息
                contactName: "",//联系人
                tel:"",
                email:"",
                address: {
                  // 省
                  province: "",
                  // 市
                  city: "",
                  // 区
                  district: "",
                  //详细地址
                  detail:""
                },//联系地址
              }
            ],

 二、用v-for循环显示在页面上

      <div><span class="msg-title">常用联系人</span></div>
      <div  v-for="(item,index) in tempList" :key="index" style="width:1300px">
        <div class="toAddcontact">
          <el-form  :model="item" :rules="addRules" ref="addForm" label-width="100px" class="add-ruleForm">
            <el-row>
              <el-col :span="6">
                <el-form-item label="联系人姓名" prop="contactName">
                  <el-input v-model="item.contactName"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="联系信息" prop="contactInfo">
                  <el-input v-model="item.contactInfo"></el-input>
                </el-form-item>
              </el-col>
            </el-row>

            <el-row>
              <el-col :span="6">
                <el-form-item label="联系电话" prop="tel">
                  <el-input v-model="item.tel"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="联系邮箱" prop="email">
                  <el-input v-model="item.email"></el-input>
                </el-form-item>
              </el-col>
            </el-row>

            <el-row>
              <el-col>
                <el-form-item label="联系地址" prop="address"  v-model="item.address">
                  <checkAddress ref="address"  v-model="item.address" :key="index" :form="item.address"/>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <div style="color: #409EFF;float:right">
            <span style="margin:20px;cursor:pointer" @click="toAdd(index)">添加</span>
            <span style="margin:20px;cursor:pointer" @click="toDelete(index)" v-if="tempList.length>1">删除</span>
          </div>
        </div>

      </div>

 三、写好css样式

<style lang="scss">
.msg-title{
  font-weight: 500;
  margin-right:20px;
  line-height: 60px;
}
.el-select{
  width:100%;
}
.demo-ruleForm{
  padding:0 80px 50px 80px;
}
.toAddcontact{
  border:1px solid #eee;
  padding:20px;
  margin:20px;
  width: 1000px;
  float:left;
  .add-ruleForm{
    padding:50px 80px 10px 80px;
  }
}
</style>

 四、定义操作方法

      toDelete(index){
        this.tempList.splice(index,1)
      },
      toAdd(index){
        console.log(index,this.tempList);
        //每次增加,都要添加一个空的数组来存放新输入的数据
        this.tempList.push({ 
              customerContactKey: "",
              contactInfo: "",//联系信息
              contactName: "",//联系人
              tel:"",
              email:"",
              address: {
                // 省
                province: "",
                // 市
                city: "",
                // 区
                district: "",
                //详细地址
                detail:""
              },//联系地址
        })
        console.log(this.tempList,this.ruleForm)
      },

这样就已经完成啦!~文章来源地址https://www.toymoban.com/news/detail-506896.html

到了这里,关于vue+element UI动态增减表单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • html中使用Vue+element UI动态创建表单数据不显示问题

    直接上代码:html代码如下 我这里后台数据是模拟的,返回的数据格式:  理想的是页面创建时就向后台获取数据,然后将数据渲染在页面上,可是失败了,但是控制台也没有报错,只有单独绑定数据的ReportTitle渲染成功。      最后问了大佬才发现,因为我用的是Vue2,必须

    2024年02月15日
    浏览(53)
  • VUE element-ui实现表格动态展示、动态删减列、动态排序、动态搜索条件配置、表单组件化。

        1、本组件支持列表的表头自定义配置,checkbox实现 2、本组件支持列表列排序,vuedraggable是拖拽插件,上图中字段管理里的拖拽效果 ,需要的话请自行npm install 3、本组件支持查询条件动态配置,穿梭框实现 https://download.csdn.net/download/askuld/88216937

    2024年01月16日
    浏览(62)
  • vue+Element UI 实现动态表单(点击按钮增删表格及嵌套输入框的增删)(1)

    el-button size=“small” @click=“addTable”新增 el-button size=“small” @click=“delTable”删除 el-table ref=“table” :data=“tableDataBind.taAssessltems” tooltip-effect=“dark” border @selection-change=“selectRow” 规格: 重量: 数量: 加工费: el-button size=“mini” type=“primary” icon=“el-icon-circle-plus-ou

    2024年04月13日
    浏览(47)
  • Vue3+Element-Plus 实现用户列表页面的UI结构及动态加载表单功能 三一

    1.1 头部是一个面包屑 (Breadcrumb)导航区域 1.2 白色区域是一个卡片(Card)视图 1.3 卡片 (Card)视图中嵌套了   输入框(Input )、 按钮(Button)、 表单(Form)、分页(Pagination ) Breadcrumb 面包屑 | Element Plus (gitee.io) https://element-plus.gitee.io/zh-CN/component/breadcrumb.html  2.1.1 复制

    2023年04月09日
    浏览(59)
  • element-ui 动态表单

    背景:朋友入职新公司,做项目重构,根据后端返回表单内容,动态生成表单,于是自己实现了下,哪里写的不好,欢迎各位提建议: 因为开关和多选框默认值是非空字符串,所以在created生命周期单独处理了下

    2024年02月11日
    浏览(85)
  • element-ui动态表单和验证

    在使用element-ui开发中,经常会用到对动态创建的表单进行字段验证,比如新增多个类似卡片的表单,里面的字段需要做验证,此时就要使用到动态表单验证,官方文档写的有示例,但是不够清晰。除了官方示例,还可以使用循环生成多个form实现该需求。 第一种官方示例:一

    2024年02月02日
    浏览(46)
  • Element UI 表单验证规则动态失效问题

    Element 版本:v2.15.3 如下代码所示:有一个上传文件的 input 组件,在更新的时候,如果不上传文件表示不更新,如果要更新则点击 「重新上传」按钮将上传组件显示出来 也就是如上图:不更新的话,该字段不是必须的,提交的时候就不会被校验,如果更新的话,就要让这个字

    2024年02月08日
    浏览(44)
  • 动态绑定表单的rules---element-ui

    在 Vue 3 中,你可以使用  refs  属性与  v-model  指令来动态绑定表单数据和验证规则。要动态删除绑定的验证规则,可以通过修改  ref  的 $rules 属性来实现。 例如,假设你有一个简单的表单组件,它使用  ref  来绑定表单数据和验证规则: 如果要动态删除  rules.name  的验

    2024年02月15日
    浏览(43)
  • Element-UI可以动态生成的form表单

    此form表单每一项绑定的值组成一个对象,对象叠加组成了一个对象数组,循环对象数组生成form的表单项。当点击新增一项时,其实就是给form表单对象数组添加一个对象,删除则反之。值得注意的是,由于动态表单得到的是一个对象数组,但我们需要的是表单的值组成的对象

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包