Pan*_*kaj 5 laravel vue.js vue-component vee-validate laravel-5.8
我正在使用 Laravel - 5.8 和 Vue.js。我的问题是关于如何在 Vee-Validate 库中显示规则的自定义错误消息。我的“必需”规则的自定义消息没有显示,而是显示:“first_name 字段是必需的。” 预期的消息是“请输入名字”。
下面的代码在 app.js 中
import { ValidationProvider } from 'vee-validate/dist/vee-validate.full';
Run Code Online (Sandbox Code Playgroud)
这是我的 HTML 组件代码。
<template>
<div>
<form role="form">
<ValidationProvider name="first_name" :rules="required">
<div slot-scope="{ errors }">
<input v-model="profileForm.first_name" class="form-control">
<p>{{ errors[0] }}</p>
</div>
</ValidationProvider>
<button type="button" @click="validateBeforeSubmit()">Update Profile</button>
</form>
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
下面是我的 JS 脚本代码
<script>
import { localize } from 'vee-validate/dist/vee-validate.full';
import en from "vee-validate/dist/locale/en.json";
export default {
data() {
return {
profileForm: {
first_name: ''
},
customMessages: {
en: {
custom: {
'first_name': {
required: 'Please enter first name'
}
}
}
},
}
},
created() {
localize("en", this.customMessages);
},
methods: {
validateBeforeSubmit() {
this.$validator.validateAll();
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
一般执行此操作的一种方法localize是使用extend():
import { extend } from 'vee-validate';
import { required } from 'vee-validate/dist/rules';
extend('required', {
...required,
message: 'Please enter first name',
});
Run Code Online (Sandbox Code Playgroud)
这将传播并包含规则的所有默认属性,同时仍然允许您添加自己的自定义消息。
国际化示例:
import { extend } from 'vee-validate';
import { required } from 'vee-validate/dist/rules';
import i18n from 'localization';
extend('required', {
...required,
message: i18n.t('LOCALIZATION_PATH'),
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10871 次 |
| 最近记录: |