element ui form表单清空规则
公司项目重构,经过商定使用element ui。在重构项目的时候发现一下element ui上很蛋疼的东西。
例如,这个form表单就是一个。趁着在高铁上没事,把想写的东西写一下。
先说一下element ui提交form表单的时候,如果没有进入我们预想的代码流程,一般就是你写的自定义验证规则有误。
例如如下代码。验证镜像的名称是否重复的一个方法。每个if-else都需要有内容。如若满足就要有一个callback()。
反正我是被这个地方给坑了,之前写代码,一般就是if满足条件之后怎么怎么样,这次必须return 一下内容
let that = this;
var checkName = function (rule, value, callback) {
let re = /^[A-Za-z0-9_\.\-\u4e00-\u9faf]+$/;
if (!value) {
callback(new Error('该字段为必填项'));
} else {
if (re.test(value)) {
let url = that.prefix + '/yr_images/create_image/';
let data = {
is_check_name: 1,
name: value
};
that.Axios({
method: 'post',
url: url,
data: data,
transformRequest:function (data) {
let ret = '';
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret.slice(0, ret.length - 1);
}
})
.then(function (res) {
if (res.data.error_code != -200) {
return callback(new Error('名称重复'))
} else {
return callback()
}
})
.catch(function (err) {
console.log(err);
})
} else {
callback(new Error('输入不符合规则'))
}
}
};
言归正传,我们公司验证表单大部分是弹框内验证的。
当我打开弹框,form验证规则不满足,然后我关闭弹框,按理说应该取消红色提示,可是没有。
想到form有一个重置按钮,然后想到完全可以使用该方法。
可是打开之后之后,在控制台会报错,说该方法不存在!
上网查原因,一大堆都有,最后查到是element ui 打开弹框的方法是自带延迟的。
于是,我就用了下面的方法。
setTimeout(function () {
that.$refs['dialogContent'].resetFields();
},300)
还是有问题,如果网络慢怎么办,可能还是报错。
于是想到了js的try catch方法,我在外部给他包裹已一层try ,catch语句。问题解决!但是,测试最后提了个bug,那就是数据驱动的vue,页面内容没有改变。
内容被重复渲染。一直没有找到问题。最后才发现是setTimeout造成的!!!!!现在想想也傻,既然后try,catch了,为什么还要增加一个settimeout!!
try {
setTimeout(function () {
that.$refs['dialogContent'].resetFields();
},300)
} catch (e) {
}
最终方法如下:
try {
that.$refs['dialogContent'].resetFields();
} catch (e) {
}
问题解决
element ui form表单清空规则的更多相关文章
- element ui FORM表单
form表单 Form-Item Slot [label] 旧版语法 <el-form-item label="活动名称" prop="name"> ...
- 封装Vue Element的form表单组件
前两天封装了一个基于vue和Element的table表格组件,阅读的人还是很多的,看来大家都是很认同组件化.高复用这种开发模式的,毕竟开发效率高,代码优雅,逼格高嘛.虽然这两天我的心情很糟糕,就像& ...
- vue+element ui 重置表单
<el-dialog :title="addForm.title" :visible.sync="dialogFormVisible" width=&qu ...
- vue + element ui 阻止表单输入框回车刷新页面
问题 在 vue+element ui 中只有一个输入框(el-input)的情况下,回车会提交表单. 解决方案 在 el-form 上加上 @submit.native.prevent 这个则会阻止 ...
- Easy UI form表单提交 IE浏览器不执行success ,以及 datagrid 展示过慢
最近在做一个Easy ui的项目 发现了一些问题,在这里总结下 1.表单提交,后端代码 public ActionResult Save(Request model) { ResultInfo _in ...
- 20151124 Jquery UI form 表单变成dialog
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- form表单清空、重置
form_live为formID <input type="button" value="重置" onclick="$('#form_live' ...
- vue elementui form表单验证
最近我们公司将前端框架由easyui 改为 vue+elementui .自学vue两周 就开始了爬坑之路.业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正, ...
- element-ui Form表单验证
element-ui Form表单验证规则全解 element的form表单非常好用,自带了验证规则,用起来很方便,官网给的案例对于一些普通场景完全没问题,不过一些复杂场景的验证还得自己多看文档摸索, ...
随机推荐
- 1503: [NOI2004]郁闷的出纳员
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 13723 Solved: 4989[Submit][Status][Discuss] Descripti ...
- list变set去重,set交集
set 取交集 并集 删除没有的元素 不会报错 remove 会报错 https://www.cnblogs.com/alex3714/articles/5717620.html
- neo4j 安装
查看 http://ip:7474/browser/
- Vue 使用History记录上一页面的数据
UI Mvvm 前端数据流框架精讲 Vue数据双向绑定探究 面试问题:Vuejs如何实现双向绑定 数据双向绑定的探究和实现 需求 从列表页的第二页进入详情页,返回时列表页仍然显示在第二页: 从列表页的 ...
- 传智 杨中科老师 ASP.NET 笔记
- (WPF&Silverlight)silverlight自定义控件
2个半小时弄懂了自定义控件是怎么回事儿. 在silverlight中创建一个UserControl,把上面sliderbar的外观和功能都封装在里面. 以自定义控件mapslider控件为例: 1.首 ...
- cakephp中使用 find('count')方法
对于find('count',array('group'=>'user_id')); Model.php中这样描述: /** * Handles the before/after filter ...
- day19 Dgango进阶 路由系统及 ORM 详解
完成一个完整的网页服务,需要有以下: 再次回顾一下Django 的完成开发流程: 一些值的获取: 对于性别,为互斥属性: 爱好则为多选: 需要使用新的方法 getlist 来获取多个爱好: 单选下拉框 ...
- 部署 Windows PowerShell Web 访问
部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® We ...
- flex布局之flex-grow和flex-shrink如何计算
此文已由作者张含会授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 关于盒模型布局 如何实现两栏布局? (表格) 流式, 浮动, 定位 如何选择? 流式 > 浮动 > ...