解决Vue+Element UI使用表单rules国际化时From表单验证信息不能实时更新

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

博主在工作之余开始进行自动化测试平台的开发,虽然已经996一个月了但是还是在使劲挤时间做这件事情,目前平台使用前端框架vue-element-admin进行简化后二次开发,目前保留了原框架中的国际化、主题色、全局搜索、字体大小以及右侧悬浮设置菜单,更多细节后续会在系列文章中进行更新~

问题描述

在默认中文时,点击登录或者失去输入框焦点时测试时,表单验证消息没有问题如图1,此时如果切换到英文时就会出现验证信息还是中文的情况如图2所示


点击注册按钮切换注册表单,此时会重置表单数据,所以不会出现验证提示信息与语言不符情况

解决方法

方法1

使用computed计算属性监控自己定义的变量

javascript 复制代码
computed: {
    loginRules() { // :rules="loginRules"
      return {
        username: [
          { required: true, message: this.$t('login.errUserNameMsg'), trigger: 'blur' }
        ],
        password: [
          { required: true, message: this.$t('login.errPasswordMsg'), trigger: 'blur' }
        ]
      }
    }
  }

方法2

通过watch监听切换中英文时,重置表单验证,这个是博主比较喜欢的,其实不需要保留上一次语言产生的验证提示,直接重置这样看着比较舒服干净,也不存在语言与提示信息不符的情况

js 复制代码
watch: {
  // 监听切换中英文时,重置表单验证
  '$i18n.locale': function() {
    this.$refs['loginForm'].clearValidate()
  }
}

最终效果

相关推荐
龙哥·三年风水4 小时前
workman服务端开发模式-应用开发-vue-element-admin挂载websocket
分布式·websocket·vue
嘤嘤怪呆呆狗5 小时前
【开发问题记录】执行 git cz 报require() of ES Module…… 错误
前端·javascript·vue.js·git·vue
darling3319 小时前
vue+elementUI 表单项赋值后无法修改的问题
前端·javascript·vue.js·elementui·ecmascript
Java雪荷9 小时前
基于 Vant UI + Redisson BitSet 实现签到日历
java·redis·vue
晚时之秋11 小时前
vue3配置测试环境、开发环境、生产环境
前端·vue
星空你好12 小时前
cursor 编程测试,记录写一个全栈完整的crud的过程
javascript·vue·springboot·elementplus·cursor
shadowflies13 小时前
组件库TDesign的表格<t-table>的使用,行列合并以及嵌入插槽实现图标展示,附踩坑
前端·javascript·vue.js·vue·tdesign
weixin_18917 小时前
‌Vite和Webpack区别 及 优劣势
前端·webpack·vue·vite
鸭梨山大。20 小时前
NPM组件包 vant部分版本内嵌挖矿代码
前端·安全·npm·node.js·vue
会发光的猪。2 天前
vue中el-select选择框带搜索和输入,根据用户输入的值显示下拉列表
前端·javascript·vue.js·elementui