解决vue elementUI 切换语言 表单验证提示不更新
项目需要国际化处理,发现一个问题:当切换语言时表单验证的提示信息没有同时更新过来看了一些解决方案,可以把rules放到computed里,但是这样切换语言会导致整个表单重新验证,而我只想把已经提示错误信息的几个表单项改变提示语言,解决方案:不使用message传入错误提示 ,手动传入验证规则let validateCode = (rule, value, callback) => ...
·
项目需要国际化处理,发现一个问题:当切换语言时表单验证的提示信息没有同时更新过来
看了一些解决方案,可以把rules放到computed里,但是这样切换语言会导致整个表单重新验证,而我只想把已经提示错误信息的几个表单项改变提示语言,
解决方案:
不使用message传入错误提示 ,手动传入验证规则
let validateCode = (rule, value, callback) => {
if (!value) {
return callback(new Error(this.$t('common.validateCode')))
} else {
return callback()
}
};
rules: {
code: [
{validator: validateCode, trigger: 'blur'}
]
}
监听i18n,切换语言时查找已经提示错误的表动项,手动触发验证
watch:{
"$i18n.locale": function () {
this.$refs['form'].fields.forEach(item => {
if(item.validateState === 'error'){
this.$refs['form'].validateField(item.labelFor)
}
})
}
},
更多推荐
已为社区贡献1条内容
所有评论(0)