How to customize error message (field name) in VeeValidate? How to customize error message (field name) in VeeValidate? vue.js vue.js

How to customize error message (field name) in VeeValidate?


You can use data-vv-as which will show in the error message. Read more here.

<input type="text" name="address_line_1" data-vv-as="Address Line 1" />

EDIT: Updated documentation reference here.


For VeeValidate v3 you can pass name attribute for the ValidationProvider

<ValidationProvider name="first name" rules="required|min:2" v-slot="{ errors }">


I got the easy way of vee-validate to customize error messages and names:

1- first install package vee-validate using following command

npm install vee-validate --save

2- import and register the following in main.js

import { ValidationProvider } from 'vee-validate/dist/vee-validate.full.esm';import { ValidationObserver } from 'vee-validate';Vue.component('ValidationProvider',ValidationProvider);Vue.component('ValidationObserver',ValidationObserver);

3- Now move to your component and make an input field:

 <ValidationObserver v-slot="{ handleSubmit }">                            <form @submit.prevent="handleSubmit(additem)">                                <ValidationProvider name="Item" rules="required" v-slot="{ errors }">                                    <div class="row">                                        <label>Item</label>                                        <textarea rows="5" id="item" data-vv-as="item1"  class="form-control" v-model="item"></textarea>                                        <span>{{ errors[0] }}</span>                                    </div>                                </ValidationProvider>                                <div class="row mt-3">                                    <button class="btn btn-sm btn-primary" type="submit" >Save Item</button>                                </div>                            </form>                        </ValidationObserver>

4- Now import localize where from you are importing ValidationProvider as followingin your vue component in script tag.

import {localize} from "vee-validate/dist/vee-validate.full.esm";localize({    en: {names:{ Item: "ITEM FEILD", firstname: "First Name"},        fields: {            Item: {                required: "Please enter some title",                // alpha: "please enter alphabets only"            }        }    }});    localize("en");