element-ui和vue表单(对话框)验证提示语(残留)清除操作


Posted in Javascript onSeptember 11, 2020

问题是这样的:

如果一个页面有多个按钮打开相同的element-ui的Dialog对话框,那么如果第一个点击"顺序"按钮出现红色验证提示语后, 再点击“取消”,或者点击页面空白处此对话框消失,而后再点击同一个“顺序”按钮亦或别的“顺序”按钮, 那么此红色提示依然存在,显然是无法忍受的,那么怎么去除呢,

element-ui和vue表单(对话框)验证提示语(残留)清除操作

这里也用到一个vue的一个语法watch,从字面意思上理解就是起到监控的作用,监控这个diaLog对话框的打开和关闭。

在 “ 代码一 ” vue中的data前面加上watch来监控对话框,对于function中的val,oldVla两个参数不必过多纠结,只要任意一个变量都可以,只是起到打开和关闭的暂存而已(个人理解)

在 “ 代码二 ” element-ui中定义一个 ref="form" 起到参照的作用(reference),watch中的form与此相对应,resetFields取自element-ui官网上的Form表单里的方法名, 看 “ 图二 ”官网截图

代码一、

let result = Vue.extend({
   name: 'recommend-list',
   template: template,
   watch: {
    dialogSequenceVisible: function (val,oldVla) {
     this.$refs["form"].resetFields();
    }
   },
   data() {
    let validateSequence = (rule, value, callback) => {
     let val = this.trim(value);
     if (val == '') {
      callback(new Error('顺序值不允许为空'));
     } else if (value > 9223372036854775807) {
      callback(new Error('顺序值不能超过9223372036854775807'));
     } else if (!this.isNumber(val)) {
      callback(new Error('必须输入正整数'));

代码二、

<el-dialog title="调整顺序" :visible.sync="dialogSequenceVisible" style="width:80%" @close='closeDialog'>
 
   <el-form label-width="200px" :model="form" style="margin:0 auto;" :rules="rules" ref="form">
 
    <el-form-item label="请输入调整的顺序值:"
        prop="sequence">
     <el-input v-model="form.sequence" style="width:200px" auto-complete="off"></el-input>
    </el-form-item>
 
   </el-form>
   <div slot="footer" class="dialog-footer">
    <el-button @click="dialogSequenceVisible = false">取 消</el-button>
    <el-button type="primary" @click="position()">确 定</el-button>
   </div>
  </el-dialog>

图二、

element-ui和vue表单(对话框)验证提示语(残留)清除操作

但是,这样会页面调试模式会报错 “ Cannot read property 'resetFields' of undefined ” 错误, 应该是第一次弹出dialog对话框的时候没有弄到DOM里, 需要修改vue中的watch代码, 做个限定. 这样不但可以清除提示语, 还可以清空输入框里内容残留, 如下:

let result = Vue.extend({
   name: 'recommend-list',
   template: template,
   watch: {
    dialogSequenceVisible: function (val,oldVla) {
     if (this.$refs['form'] != undefined) {
      this.$refs["form"].resetFields();
     }
    }
   },

补充知识:elementUI vue 编辑中的input的验证残留清除

当使用编辑的时候, 假如上次的验证没通过, 报红了, 下次再点击编辑的时候还会报红,因此要清除验证残留, 方式有两种:

this.$refs["from"].resetFields(); //移除校验结果并重置字段值

this.$refs["from"].clearValidate(); //移除校验结果

以上这篇element-ui和vue表单(对话框)验证提示语(残留)清除操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ie下$.getJSON出现问题的解决方法
Feb 12 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
Feb 04 Javascript
详解JavaScript的while循环的使用
Jun 03 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
收集前端面试题之url、href、src
Mar 22 Javascript
微信小程序开发之路由切换页面重定向问题
Sep 18 Javascript
JavaScript类的继承操作实例总结
Dec 20 Javascript
详解如何使用node.js的开发框架express创建一个web应用
Dec 20 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
Apr 10 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
Sep 11 #Javascript
vue界面发送表情的实现代码
Sep 11 #Javascript
在vue中配置不同的代理同时访问不同的后台操作
Sep 11 #Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
Sep 11 #Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
Sep 11 #Javascript
关于ES6尾调用优化的使用
Sep 11 #Javascript
在js文件中引入(调用)另一个js文件的三种方法
Sep 11 #Javascript
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
python中的闭包函数
2018/02/09 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
J2EE模式面试题
2016/10/11 面试题
《鲁班和橹板》教学反思
2014/04/27 职场文书
公司任命书模板
2014/06/06 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
云冈石窟导游词
2015/02/04 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
倡议书格式及范文
2015/04/29 职场文书
党小组鉴定意见
2015/06/02 职场文书
大学生党课感想
2015/08/11 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android