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 相关文章推荐
网页中实现浏览器的最大,最小化和关闭按钮
Mar 12 Javascript
JS案例分享之金额小写转大写
May 15 Javascript
JavaScript更改原始对象valueOf的方法
Mar 19 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
Jan 19 Javascript
JS如何设置元素样式的方法示例
Aug 28 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 Javascript
js微信分享接口调用详解
Jul 23 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
处理JavaScript值为undefined的7个小技巧
Jul 28 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中常用数组处理方法实例分析
2008/08/30 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
一些Python中的二维数组的操作方法
2015/05/02 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
法律专业应届本科毕业生求职信
2013/10/25 职场文书
教师实习自我鉴定
2013/12/11 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
班长自荐书范文
2014/02/11 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
普宁寺导游词
2015/02/04 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书