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&amp;FireFox兼容]JS对select操作
Jan 07 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
Jun 19 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
浅析Bootstrap组件之面板组件
May 04 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
elementUI select组件value值注意事项详解
May 29 Javascript
微信公众号服务器验证Token步骤图解
Dec 30 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 Javascript
javascript对象3个属性特征
Nov 17 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
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP递归的三种常用方式
2019/02/28 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
解决Python requests 报错方法集锦
2017/03/19 Python
python入门前的第一课 python怎样入门
2018/03/06 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python时间日期操作方法实例小结
2020/02/06 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
Spy++的使用方法及下载教程
2021/01/29 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
审计主管岗位职责
2014/01/31 职场文书
网络技术专业求职信
2014/05/02 职场文书
工程承诺书怎么写
2014/05/24 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
三方股东合作协议书
2014/10/28 职场文书
2015年商场工作总结
2015/04/27 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电
Redis主从复制操作和配置详情
2022/09/23 Redis