J'utilise Laravel - 5.8 avec vue.js. Il s'agit d'afficher un message d'erreur personnalisé en utilisant le package vee-validate. Mais, pour certaines raisons, mon message personnalisé requis ne s'affiche pas et à la place, il affiche - le champ prénom est obligatoire. Attendu est - Veuillez entrer le prénom.
Le code ci-dessous est dans app.js
import { ValidationProvider } from 'vee-validate/dist/vee-validate.full';
Il y a un composant utilisé. Ci-dessous le code 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>
Ci-dessous est le code du script 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>
Suis-je en train de manquer quelque chose? Veuillez me faire savoir si vous avez besoin de plus d'informations.
Je pense que vous devez passer this.customMessages.en
À localize()
ou l'objet passé a une propriété de niveau supérieur en
. Le dictionnaire passé devrait ne contenir que vos messages personnalisés .