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 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
JavaScript EasyPager 分页函数
May 25 Javascript
javascript中强制执行toString()具体实现
Apr 27 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
Jul 21 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
Jul 18 Javascript
js漂浮广告实现代码
Aug 15 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
JavaScript常用数学函数用法示例
May 14 Javascript
vue-cli构建项目下使用微信分享功能
May 28 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
微信小程序自定义组件
2017/08/16 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
Python求导数的方法
2015/05/09 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
python3转换code128条形码的方法
2019/04/17 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
python接口自动化框架实战
2020/12/23 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
机电专业个人自荐信格式模板
2013/09/23 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
证婚人搞笑证婚词
2014/01/10 职场文书
党员岗位承诺书
2014/03/25 职场文书
财产保全担保书范文
2014/04/01 职场文书
作风建设年活动总结
2014/08/27 职场文书
学习十八大标语
2014/10/09 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
刘胡兰观后感
2015/06/16 职场文书
陈斌强事迹观后感
2015/06/17 职场文书