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与FireFox的剪切板操作代码
Sep 28 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
Feb 23 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
Sep 19 Javascript
js简单的表格添加行和删除行操作示例
Mar 31 Javascript
学习javascript面向对象 掌握创建对象的9种方式
Jan 04 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
bootstrap fileinput 上传插件的基础使用
Feb 17 Javascript
JavaScript模板引擎原理与用法详解
Dec 24 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 Javascript
vue实现弹幕功能
Oct 25 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 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自动注册登录验证机制实现代码
2011/12/20 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
浅谈Python __init__.py的作用
2020/10/28 Python
利用python 下载bilibili视频
2020/11/13 Python
pandas按条件筛选数据的实现
2021/02/20 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
单位创先争优活动方案
2014/01/26 职场文书
精彩的英文自荐信
2014/01/30 职场文书
应急处置方案
2014/06/16 职场文书
教你使用TensorFlow2识别验证码
2021/06/11 Python
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
Python中异常处理用法
2021/11/27 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python