¿Cómo puedo mostrar un mensaje de error que sea relevante para el error en vee-validate? Tengo una entrada de número y lo valido para requerido y numérico así:
<ValidationObserver :name="'age'"> <div class="flex flex-col items-center"> <h3 class="nunito text-2xl">Wpisz swój rok urodzenia</h3> <form class="" @submit.prevent="handleSubmit(onSubmit('alko'))"> <label for="age" class="hidden">Wpisz swój rok urodzenia</label> <ValidationProvider v-slot="{ errors }" mode="eager" rules="numeric|required" :bails="false" > <input id="age" type="number" placeholder="1992" v-model="ageInput" name="age" data-vv-scope="alko" class="k-border p-4 text-center h-20 w-44 text-xl nunito my-6" /> <div class="text-red-500 text-center nunito text-xs"> {{ errors[0] }} </div> </ValidationProvider> </form> </div> </ValidationObserver> <script> import { ValidationProvider, ValidationObserver, extend } from "vee-validate"; import { numeric, required } from "vee-validate/dist/rules"; export default { name: "AgeVerificationXs", components: { ValidationProvider, ValidationObserver, }, data() { return { showAlko: true, ageInput: "", }; }, methods: { onSubmit(data) { console.log(data); }, }, created() { extend("required", { ...required, message: "To pole jest wymagane", }); extend("numeric", { ...numeric, message: "To pole może zawierać tylko cyfry", }); }, }; </script>El caso es que cuando ingreso caracteres no numéricos en Firefox (en Chrome están deshabilitados de manera predeterminada en los campos tipo número) el mensaje que recibo es que este campo es obligatorio, la cuestión es que el campo se llenó y la regla que debería ser aplicado es "numérico" Muestro errores [0] (de acuerdo con los documentos y cada ejemplo que he encontrado) pero necesito mostrar un mensaje de error relevante para el error. ¿Cómo puedo hacer eso? Agradezco cualquier ayuda. Gracias.
Creo que el problema es que tiene sus reglas "requeridas" y "numéricas" en el gancho del ciclo de vida created(). Debe moverlos fuera del valor predeterminado de exportación {} y el enlace del ciclo de vida created() y debajo de donde los está importando, así:
import { numeric, required } from "vee-validate/dist/rules"; extend("required", { ...required, message: "To pole jest wymagane", }); extend("numeric", { ...numeric, message: "To pole może zawierać tylko cyfry", });