关于element-ui resetFields
上周换到新项目组,依然是vue,不过是搭配element-ui。
这两天开始用el-form,发现了个问题。
就是我的表单确定提交之后,需要重置表单,一开始我没看熟API,直接将form对象手动赋成初始值,但是这样的问题是再打开每个el-form-item还是校验成功,
这时我发现了resetFields方法(对整个表单进行重置,将所有字段值重置为初始值并移除校验结果),于是改用这个方法。
改了之后出现了另一个问题,其他字段都重置了,但是有一个form-item里面放的是checkbox,我给的初始值是false,但是重置后变成了true。我以为我给的值类型不对,后来发现怎么也不行。
去看了下elementui form/form-item的源码,发现,必须在每个form-item里加上prop属性,并且与-model的值相同才可以。
因为我的checkbox不是必选的,也没什么其他验证,所以一开始没有给prop属性:
<el-form-item label="领取限制" prop="limitType">
<el-checkbox v-model="form.limitType">关注公众号才能领取</el-checkbox>
</el-form-item>
后来改成了:
<el-form-item label="领取限制" prop="limitType">
<el-checkbox v-model="form.limitType">关注公众号才能领取
</el-checkbox>
</el-form-item> rules: {
limitTYpe: []
}
这样才重置成功~
来看一下form-item中关于resetField的代码:
// 重置字段为初始值
resetField() {
this.validateState = '';
this.validateMessage = ''; // 获取model数据模型中所对应的值
let model = this.form.model; // 所有表单数据
let value = this.fieldValue; // 该项表单数据
let path = this.prop;
if (path.indexOf(':') !== -1) {
path = path.replace(/:/, '.');
} let prop = getPropByPath(model, path, true); this.validateDisabled = true;
// 重置为一开始获取的初始值
if (Array.isArray(value)) {
prop.o[prop.k] = [].concat(this.initialValue);
} else {
prop.o[prop.k] = this.initialValue;
} // 向下寻找select组件,发布fieldReset事件暴露初始表单数据
this.broadcast('ElTimeSelect', 'fieldReset', this.initialValue);
},
可以看到初始值是通过prop计算得到当前path,由path得到getPropByPath的返回值prop,并将prop.o[prop.k]设置为初始值,完成重置。
关于element-ui resetFields的更多相关文章
- element ui 中的 resetFields() 报错'resetFields' of undefined
每次做各种form表单时,首先要注意的是初始化,但是刚开始若没有仔细看文档,则会自己写个方法将数据设置为空,但是这样就会出现一个问题,表单内存在各种验证,假如是一个弹框内有form表单,弹框出现就执行 ...
- element ui form表单清空规则
公司项目重构,经过商定使用element ui.在重构项目的时候发现一下element ui上很蛋疼的东西. 例如,这个form表单就是一个.趁着在高铁上没事,把想写的东西写一下. 先说一下eleme ...
- 【Element UI】使用问题记录
[Element UI]使用问题记录 转载:https://www.cnblogs.com/yangchongxing/p/10750994.html 下载地址: https://unpkg.com/ ...
- 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题
方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加 ...
- 使用element ui 日期选择器获取值后的格式问题
一般情况下,我们需要给后台的时间格式是: "yyyy-MM-dd" 但是使用Element ui日期选择器获取的值是这样的: Fri Sep :: GMT+ (中国标准时间) 在官 ...
- element ui 1.4 升级到 2.0.11
公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...
- [坑况]饿了么你是这样的前端——vue+element ui 【this dependency was not found:'element-ui/lib/theme-chalk/index.css'】
element ui 坑况:今日pull代码,潇洒npm run dev ,被告知:this dependency was not found:'element-ui/lib/theme-chalk/ ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- Element UI——本地引入iconfont不显示
前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...
- Html | Vue | Element UI——引入使用
前言 做个项目,需要一个效果刚好Element UI有,就想配合Vue和Element UI,放在tp5.1下使用,但是引入在线的地址各种报错,本地引入就完美的解决了问题! 代码 __STATIC_J ...
随机推荐
- Condtion type Z123 is mandatory!
user exit: MV45AFZZ->userexit_save_document_prepare ZI_EXIT_SD_CNEMS_SAVE_PREPARE ***Start of ins ...
- altera DDR2 IP核之仿真
在生成的IP核文件夹下,有一个testbench文件夹,里面包含了一个example测试激励和DDR2仿真模型. 如下 20 -rw-r--r-- 1 Administrator 197121 171 ...
- docker 搭建 hustoj
docker 搭建 hustoj hustoj 是个GPL开源的OJ,其提供了docker形式的安装方式. 为执行方便,选择使用aliyun提供的docker镜像来加速安装. 拉取镜像 docker ...
- no module named selenium
I am having the same problem. I have downgraded selenium for now. pip uninstall selenium pip install ...
- 通过java程序调用ant build.xml配置文件中指定的target
一.概述 通过ant实现项目的自动化部署,jar包生成,替换,tomcat关停.启动,查看项目日志: 通过java程序调用已编辑好的ant脚本build.xml配置文件中指定的target: 文中文件 ...
- Exp6 信息搜集与漏洞扫描 20164313 杜桂鑫
1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 1.使用搜索引擎 在百度搜索栏内输入 site:com filetype:doc 北京电子科技学院 ...
- 【学习】python文件读写,用with open as的好处,非常好【转载】
原文链接:http://www.cnblogs.com/ymjyqsx/p/6554817.html 备注:博主还有很多值得学习的笔记,遇到问题可以拜读,非常感谢博主的总结 读写文件是最常见的IO操作 ...
- javascript基础知识笔记-自用
笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...
- [python]关于函数传入参数
在传入参数时有两个特殊参数,*args,**kwargs,功能如下: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ' ...
- JVM内存模型和面试题解析
一.JVM运行时区域 其中, 线程私有的:程序计数器,虚拟机栈,本地方法栈 线程共享的:堆,方法区,直接内存 1 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示 ...