elementUI清空弹框中的表单数据

点击此处直达应用场景示例


官网:https://element.eleme.cn/#/zh-CN/component/form
在这里插入图片描述

补充:改变表头颜色:

<el-table :data="tableData" border style="width: 100%" :header-cell-style="{background:'#d3dce6',color:'#606266'}" v-loading="loading">

一、表单提交后,发现表单中的数据没有清空。两种实现方法:

(1)官网中提供的重置方法:this.$refs['formName'].resetFields();
(2)清空数据: this.$refs['formName'].clearValidate();
(3)常用示例 :

<el-form :model="formData" :rules="rules" ref="formData">if(this.$refs.formData){this.$refs.formData.resetFields();
}

二、解决点击编辑弹框,再点击添加填弹框,表单数据无法清空问题

1. 此方法有效,但是如果打开修改弹框后再添加,确认添加后会多一个打开弹框时的 id 字段。

//打开弹框清空表单,并将数据保存到弹框中的 addForm 中
<el-dialog :title="dialogTitle" :visible.sync="isDialog" width="620px" v-if="isDialog"><el-form :inline="true" :model="addForm" :rules="rules" ref="addForm" size="mini" class="myStyle" label-width="100px" ><el-form-item label="模板名称" prop="templateName"><el-input v-model="addForm.templateName" placeholder="请输入模板名称" class="nobr"></el-input></el-form-item><el-form-item label="模板网址" prop="templateUrl"><el-input v-model="addForm.templateUrl" placeholder="请输入模板网址" class="nobr"></el-input></el-form-item><el-form-item label="模板简介" prop="templateDesc"><el-input v-model="addForm.templateDesc" required placeholder="请输入模板简介" class="nobr"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button @click="isDialog=false" class="myStyle" size="mini">取 消</el-button><el-button type="primary" @click="onSubmit()" class="myStyle" size="mini">确 定</el-button></div>
</el-dialog>data(){return {isDialog: false,openDialogName: "", //用来判断打开的弹框是属于添加or修改dialogTitle: "", //弹框标题addForm: {templateName: "",templateUrl: "",templateDesc: ""},rules: {templateName: [{ required: true, message: "此项不能为空", trigger: "blur" }],templateUrl: [{ required: true, message: "此项不能为空", trigger: "blur" }],templateDesc: [{ required: true, message: "此项不能为空", trigger: "blur" }]}}
},methods: {openDialog(formName, data) {    //清空表单数据 this.$nextTick(() => {if(this.$refs.addForm){//this.$refs.addForm.clearValidate();this.$refs.addForm.resetFields();//个人喜爱。clearValidate有时候验证清不掉,具体原因暂时没找到} })for(let key in this.addForm){this.addForm[key]=""; //注意初始值的数据类型为数字、数组等其他类型的,需要在循环外补充。}delete this.addForm.id; //修改弹框给this.addForm新增的id字段//this.addForm.raios = 0; //示例this.openDialogName = formName; //赋值,提交时将用到该变量this.isDialog = true;      if (formName === "addForm") {this.dialogTitle = '新增XXX信息';} else if (formName === "updateForm") {this.dialogTitle = '修改XXX信息';let { id, templateName, templateUrl, templateDesc } = data;this.addForm = { id, templateName, templateUrl, templateDesc }; //这一步是将表格中的数据赋值给绑定的addForm}},//提交添加、修改onSubmit() {this.$refs.addForm.validate((valid) => {if ( valid ) {           this.addDialog = false;if(this.openDialogName === 'addForm'){//-----添加时的操作-----} else if(this.openDialogName === 'updateForm'){            //-----修改时的操作-----}   } else {return false;}}) ;},
}

2. 删除 json 中指定的某个字段:delete、splice、filter。
简单说一下这3个的用法:

//delete
const Employee = {firstname: 'John',lastname: 'Doe'
};
delete Employee.firstname;//splice
Employee.splice(0,1);
//splice(指定位置(从0开始,指定位置包括自身), 删除个数, 新增内容)//filter
Employee = Employee.filter( (e)=>{return e.firstname!=='John';} )

3. 如果使用上述方法,还是不能清空表单(比如下拉框数据改变,但是页面上不变),可以在弹框中加 v-if 语句,会有意想不到的结果哦。

<el-dialog :title="dialogTitle" :visible.sync="isDialog" width="620px" v-if="isDialog">
</el-dialog>

4. 当数据太少时,上面的解决方法显得大材小用,可以直接赋初始值。

//将这段代码用下面的代码代替
this.$nextTick(() => {if(this.$refs.addForm){this.$refs.addForm.clearValidate();} 
})
for(let key in this.addForm){this.addForm[key]=""; 
}
delete this.addForm.id; 
//将这段代码用下面的代码代替if(this.$refs.addForm){ this.$refs.addForm.resetFields(); };      
this.addForm = {systemName: ""
};

5. 过来补充一下
再次做项目的时候,发现上面的方法真的很麻烦,而且会忘记,不想老是找以前的项目复制粘贴。于是找到了下面这个,发现我之前的代码真的很鸡肋啊!https://blog.csdn.net/huqiut/article/details/122927162
this.$data 当前data数据

this.$options.data() 原始data数据

Object.assign(this.$data, this.$options.data()); 深度响应式修改

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

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

相关文章

(一)PHP基础知识考察点

1&#xff0c;PHP引用变量的考察点&#xff1a; 概念&#xff1a;引用就是用不同的名字访问同一个变量内容。 定义方式&#xff1a; 使用&符号。 PHP引用变量的工作原理 这里有个COW copy on write 用zval&#xff08;&#xff09;去查看空间占用情况以及引用情况。 unse…

.Net4.0 Parallel编程(三)Data Parallelism下

在上篇文章中介绍了如何Break、Stop循环&#xff0c;以及如何定义线程局部变量。在本文中介绍如何在外部去取消循环、以及异常的处理。 Cancel 在并行的循环中支持通过传递ParallelOptions参数中的CancellationToken进行取消循环的控制&#xff0c;我们可以CancellationTokenSo…

节点的运用和方法

JQUERY的父&#xff0c;子&#xff0c;兄弟节点查找方法 jQuery.parent(expr) 找父亲节点&#xff0c;可以传入expr进行过滤&#xff0c;比如$("span").parent()或者$("span").parent(".class") jQuery.parents(expr),类似于jQuery.parents(ex…

Java:使用终止信号确定数据导入的状态

几周前&#xff0c;我正在尝试将约6000万位数据最初导入Neo4j&#xff0c;但我们一直遇到一个问题&#xff0c;即导入过程似乎停滞了&#xff0c;什么也没导入。 很难分辨该过程中发生了什么—采取线程转储只是告诉我们它正在尝试处理CSV行中的一行&#xff0c;并且以某种方式…

根据可视窗口判断面板向上还是向下展开

本demo以element-ui框架为视图模板~ HTML代码 JS代码 CSS代码 转载于:https://www.cnblogs.com/dreamsqin/p/10885502.html

关于几本模拟IC设计书

1.P.R.Gray的书  这本书被业界誉为模拟IC的Bible&#xff0c;盛名之下&#xff0c;必无虚士。现在已经出到第四版&#xff0c;作者无一例外是业界大牛&#xff0c;该书论述严谨&#xff0c;思路清晰&#xff0c;对电路分析透彻&#xff0c;定义严格明确&#xff0c;无愧Bible…

编写JUnit测试的另一种方法(Jasmine方法)

最近&#xff0c;我为一个小型个人项目编写了很多Jasmine测试。 我花了一些时间才终于感到正确地完成了测试。 此后&#xff0c;当我切换回JUnit测试时&#xff0c;我总是很难过。 出于某种原因&#xff0c;JUnit测试不再那么好&#xff0c;我想知道是否有可能以类似于Jasmine的…

H5 input输入限制最大位数,和调用小键盘需求发生冲突的解决办法

首先&#xff0c;限制输入最大位数时&#xff0c;input有自带的属性maxlength。 <input type"text" name"email" maxlength"55" /> 使用方法&#xff1a;maxlength"位数" 但是&#xff0c;对于这个属性他是有自己的限制条件的 …

解决vue项目在ie浏览器中不显示的问题

安装 “babel-polyfill” npm install babel-polyfill --save-dev 或者 cnpm install babel-polyfill --save-dev在入口 main.js 文件引入&#xff1a;import babel-polyfill在 build 文件下的 webpack.base.conf.js 文件中修改代码&#xff1a; entry: {app: ["babel-p…

Spark-Luanch Driver

1.SparkSubmit.scala主要调用M-prepareSubmitEnvironment&#xff0c;该方法更根据用户定义的参数&#xff0c;匹配不同client&#xff0c;去调用不同clientApp。(ps&#xff1a;本次讲ClientApp 也就是standalone)在M-runMain通过 调用M-Utils.classForName 反射的方式调用 …

大风大浪大鱼

一群年轻人常在一泓深潭边钓鱼&#xff0c;而有一个渔夫总是在潭上边水流湍急的河里捕鱼。 年轻人觉得这渔夫可笑&#xff0c;在大风大浪的河里怎么会捕到鱼呢?有一天&#xff0c;年轻人忍不住去问渔夫&#xff1a;“鱼能在这么湍急的地方停留吗?”渔夫说&#xff0c;当然不能…

清空表单时出现问题

打开页面时报警告&#xff1a; 解决办法&#xff1a; &#xff08;1&#xff09;npm i default-passive-events -S &#xff08;2&#xff09;main.js中加入&#xff1a;import ‘default-passive-events’ 参考&#xff1a;https://www.jianshu.com/p/23850d4cade8 出现原…

JQuery Ajax 使用FormData上传文件对象

FormData部分: 先new FormData对象 :let somedata new FormData(),然后将数据添加进去&#xff0c;这里我们使用append()进行添加。 这里举一个上传头像的例子&#xff1a; let token localStorage.token; let img $(".file")..get(0).files[0]; let somedat…

[探索][管理]《现在,发现你的优势》

此书是我迄今为止看过最棒的一本书&#xff01;&#xff01;&#xff01; 为什么这么说&#xff0c;因为就像前言彼得德鲁克所说的一样 -- 大部分的人都不知道他们的优势何在。此书的宗旨就是测试你的优势是什么&#xff0c;并且发展你的优势。为何要去改变你不擅长的东西呢&am…

box2d——1.tiles瓦片积木

【调试渲染】 将TestCpp里Box2DTestBed的GLES-Render.h/cpp加入到项目中。声明绘制变量&#xff1a;GLESDebugDrawmDebugDraw。 【创建世界】 // 依据重力创建世界b2Vec2 gravity;gravity.Set(0.0f, -10.0f);mWorld new b2World(gravity);// 设置调试渲染和碰撞侦听mWorld-&…

如何在JSF中实现自定义密码强度指示器

使用JavaScript验证密码强度是一项常见任务。 在本文中&#xff0c;我将展示如何向基于JSF的Web应用程序添加密码强度指示器。 的 PrimeFaces中的密码组件已经具有密码强度的反馈指示符&#xff0c;但是它有两个主要缺点&#xff1a; 反馈指示器没有响应&#xff08;固定宽度…

CSS 学习路线(二)选择器

选择器 规则结构: 分两个基本部分 选择器(selector)和声明块(declaration block) 组成 声明块:由一个或多个声明组成,每一个声明都是属性-值对 选择器分为:元素选择器,类选择器,后代选择器,通配选择器,ID选择器,属性选择器,伪类选择器.子元素选择器,相邻兄弟选择器. 元素选…

关于vue打包的问题

一、vue-cli2 二、vue-cli3 一、vue-cli2 错误提示&#xff1a; npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! hewelry1.0.0 build: node build/build.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the hewelry1.0.0 build script. npm ERR! This is prob…

关于==和equals的区别和联系,面试这么回答就可以

长篇大论的话&#xff0c;我这里就不多写了&#xff0c;相信大家入门java 的时候就知道个大概了&#xff0c;这里想表述的是&#xff0c;如果面试官问你《关于和equals的区别》&#xff0c;该怎么回答完美呢&#xff1f;可以这样说 总结的来说&#xff1a; 1&#xff09;对于&a…