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 相关文章推荐
jQuery图片轮播的具体实现
Sep 11 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
js数组的操作指南
Dec 28 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
如何编写一个完整的Angular4 FormText 组件
Nov 18 Javascript
layui表格数据复选框回显设置方法
Sep 13 Javascript
webpack proxy 使用(代理的使用)
Jan 10 Javascript
javascript异常处理实现原理详解
Feb 17 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
Aug 26 Javascript
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
基于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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
基于jQuery的表格操作插件
2010/04/22 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
js实现点赞效果
2020/03/16 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
Python 功能和特点(新手必学)
2015/12/30 Python
Python3使用requests发闪存的方法
2016/05/11 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python IDLE清空窗口的实例
2018/06/25 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
医学专业毕业生个人的求职信
2013/12/04 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
护理工作个人总结
2015/03/03 职场文书
学校安全管理制度
2015/08/06 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python