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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
javascript Array数组对象的扩展函数代码
May 22 Javascript
js获得页面的高度和宽度的方法
Feb 23 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
Jan 09 Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
vue2中filter()的实现代码
Jul 09 Javascript
Node做中转服务器转发接口
Oct 18 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 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
PHP4.04简明安装
2006/10/09 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Python操作Access数据库基本步骤分析
2016/09/19 Python
python实现决策树分类算法
2017/12/21 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
大学社团活动策划书
2014/01/26 职场文书
材料会计岗位职责
2014/03/06 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
财务工作失误检讨书
2015/02/19 职场文书
开学典礼致辞
2015/07/29 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python