iview form清除校验状态的实现


Posted in Javascript onSeptember 19, 2019

有个需求,要求对输入框进行 启用/禁用 的切换,同时在禁用时要清除输入框的校验状态(那个红框)。

方法一:修改 formItem 字段属性

在iview 的官方api 中并没找到清除校验状态的方法,看了下源码,用一个粗糙的方法解决了。

源文件 form-item.vue 中的 resetField方法 是通过修改这两个属性的值清空状态和提示的
iview form清除校验状态的实现

其实就是把 formItem 的两个属性值进行了修改,
v.validateDisabled 是否校验
v.validateState 展示状态(校验错误时此处值为 'error')
v.validateMessage 错误提示文字

iview form清除校验状态的实现

修改状态的同时需要把校验规则清掉,否则在提交时还会再次触发校验方法。

方法二:控制 form 渲染

后来在置空校验规则的时候,初始如果没有规则的话,则不会校验(除非去点击提交按钮),然后想到用 v-if 控制 form 的渲染时机,当校验规则发生变化的时候重新渲染,这样就能保证规则和 DOM 是同步的,也不用费力去修改属性

这时就用到了 Promise(真是个好东西),超简单的做了个 callback,每次切换控制按钮都进行这么一套渲染(主要还是代码中调用这个方法的地方太多,懒的去改),也是粗暴的把这个需求对付上了。

iview form清除校验状态的实现

后续研究一下,在原基础上增加一个方法专门用来清除状态 ^_^

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 继承详解 第一篇
Aug 30 Javascript
JavaScript版DateAdd和DateDiff函数代码
Mar 01 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
JS+CSS相对定位实现的下拉菜单
Oct 06 Javascript
bootstrap中模态框、模态框的属性实例详解
Feb 17 Javascript
值得分享和收藏的xmlplus组件学习教程
May 05 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
May 11 Javascript
EasyUI中的dataGrid的行内编辑
Jun 22 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
vue通信方式EventBus的实现代码详解
Jun 10 Javascript
对layui中table组件工具栏的使用详解
Sep 19 #Javascript
layui自定义工具栏的方法
Sep 19 #Javascript
Node 代理访问的实现
Sep 19 #Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
Sep 19 #Javascript
微信小程序进入广告实现代码实例
Sep 19 #Javascript
解决layui数据表格Date日期格式的回显Object的问题
Sep 19 #Javascript
转换layUI的数据表格中的日期格式方法
Sep 19 #Javascript
You might like
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
Python语言的面相对象编程方式初步学习
2016/03/12 Python
python学习教程之使用py2exe打包
2017/09/24 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
django中间键重定向实例方法
2019/11/10 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
公司门卫岗位职责
2014/03/15 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
基于Python实现将列表数据生成折线图
2022/03/23 Python
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
MYSQL常用函数介绍
2022/05/05 MySQL
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers
Django框架中视图的用法
2022/06/10 Python