如何使用 VeeValidate 上的字典为 ValidationProvider 自定义“必需”错误消息 (Vue.Js)
How to customize “required” error messages for ValidationProvider using a dictionary on VeeValidate (Vue.Js)
当我的组件 MyInput 没有填充 "cpf" 规则时,我想更改错误消息(换句话说,当组件 "cpf"规则不满足"required"规则。
我认为带有自定义消息的 "dictionary method" 应该可以,但我做不到。
使用下面的代码,显示的错误消息是"O campo cpf é obrigatório"。我想在 ("Favor preencher o cpf") 下面的字典中显示消息。我认为出于某种原因未考虑该词典
在我的main.js中,我有以下代码:
import Vue from 'vue';
import App from './App.vue';
import './core/extensions';
new Vue({
render: h => h(App),
}).$mount('#app');
然后 extensions.js:
import Vue from 'vue';
import VeeValidate, { Validator } from 'vee-validate';
import ptBR from 'vee-validate/dist/locale/pt_BR';
const dict = {
messages: ptBR.messages,
pt_BR: {
custom: {
cpf: {
required: 'Favor preencher o cpf',
},
}
},
};
Vue.use(VeeValidate);
Validator.localize({ pt_BR: dict })
Validator.extend('cpf', (val) => {
return false //just to test
});
App.vue(简单例子):
<template>
<div id="app">
<ValidationObserver ref="observer">
<ValidationProvider ref="cpfinput" rules="cpf" name="CPF">
<myInput
slot-scope="{ errors }"
:errorProp="errors"
name="cpf"
/>
</ValidationProvider>
</ValidationObserver>
</div>
</template>
我正在使用 vee-validate 2.1.5
和 vue 2.5.17
像这样传递你的字典,它应该可以工作:
const dict = {
messages: ptBR.messages,
pt_BR: {
custom: {
cpf: {
required: 'Favor preencher o cpf',
},
}
},
};
Vue.use(VeeValidate, {
locale: 'pt_BR',
dictionary: dict
});
当我的组件 MyInput 没有填充 "cpf" 规则时,我想更改错误消息(换句话说,当组件 "cpf"规则不满足"required"规则。
我认为带有自定义消息的 "dictionary method" 应该可以,但我做不到。
使用下面的代码,显示的错误消息是"O campo cpf é obrigatório"。我想在 ("Favor preencher o cpf") 下面的字典中显示消息。我认为出于某种原因未考虑该词典
在我的main.js中,我有以下代码:
import Vue from 'vue';
import App from './App.vue';
import './core/extensions';
new Vue({
render: h => h(App),
}).$mount('#app');
然后 extensions.js:
import Vue from 'vue';
import VeeValidate, { Validator } from 'vee-validate';
import ptBR from 'vee-validate/dist/locale/pt_BR';
const dict = {
messages: ptBR.messages,
pt_BR: {
custom: {
cpf: {
required: 'Favor preencher o cpf',
},
}
},
};
Vue.use(VeeValidate);
Validator.localize({ pt_BR: dict })
Validator.extend('cpf', (val) => {
return false //just to test
});
App.vue(简单例子):
<template>
<div id="app">
<ValidationObserver ref="observer">
<ValidationProvider ref="cpfinput" rules="cpf" name="CPF">
<myInput
slot-scope="{ errors }"
:errorProp="errors"
name="cpf"
/>
</ValidationProvider>
</ValidationObserver>
</div>
</template>
我正在使用 vee-validate 2.1.5
和 vue 2.5.17
像这样传递你的字典,它应该可以工作:
const dict = {
messages: ptBR.messages,
pt_BR: {
custom: {
cpf: {
required: 'Favor preencher o cpf',
},
}
},
};
Vue.use(VeeValidate, {
locale: 'pt_BR',
dictionary: dict
});