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 相关文章推荐
利用XMLHTTP传递参数在另一页面执行并刷新本页
Oct 26 Javascript
Javascript中找到子元素在父元素内相对位置的代码
Jul 21 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 Javascript
判断字符串的长度(优化版)中文占两个字符
Oct 30 Javascript
node.js中的http.response.setHeader方法使用说明
Dec 14 Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
Mar 08 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
JS代码优化的8点建议
Feb 04 Javascript
使用next.js开发网址缩短服务的方法
Jun 17 Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
基于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执行批量mysql语句的解决方法
2013/05/02 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
php模拟post提交数据的方法
2015/02/12 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
js格式化时间小结
2014/11/03 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
nodeJS微信分享
2017/12/20 NodeJs
vue组件详解之使用slot分发内容
2018/04/09 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
python相似模块用例
2016/03/04 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python requests接口测试实现代码
2020/09/08 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
HTML5进度条特效
2014/12/18 HTML / CSS
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
《蒲公英》教学反思
2014/02/28 职场文书
财务内勤岗位职责
2014/04/17 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书