Validar Formularios en Vue JS
En este tutorial sobre ¿Cómo validar formularios, campos o inputs en Vue?, vamos a hacer uso de uno de mis paquetes de npm, el cual se llama @elpandev/laravel-validator
y contiene la mayoría de las reglas que usa Laravel para validar formularios.
Formulario en Vue
Antes de validar, vamos a crear un formulario con los campos name y description, los cuales se van a encontrar dentro de un formulario de html y un método prevent llamado validate.
<template>
<form @submit.prevent="validate()">
<input type="text" v-model="name">
<input type="text" v-model="description">
<button type="submit">validar</button>
</form>
</template>
Adicionalmente, vamos a crear el método validate para validar los campos del formulario usando nuestro plugin de npm.
<script lang="ts">
import Vue from 'vue'
import Validator, { IMessages, IRules, IValues } from "@elpandev/laravel-validator";
export default Vue.extend({
data() {
return {
name: '',
description: ''
}
},
methods: {
validate() {
const payload: IValues = {
name: this.name,
description: this.description,
}
const rules: IRules = {
name: ['required'],
description: ['required']
}
const messages: IMessages = {
name: { required: 'The field "name" is required' },
description: { required: 'The dield "description" is required' },
}
const validator = new Validator(payload, rules, messages)
console.log(validator.errors)
}
}
})
</script>
Validación del Formulario
Ahora que tenemos nuestro componente de Vue listo, vamos a dejar los campos vacíos y validar nuestro formulario, obteniendo como resultado 2 errores que coinciden con las reglas "required" que hemos añadido para cada campo.
{
description: ['The dield "description" is required'],
name: ['The field "name" is required'],
}
Si quieres saber más sobre las reglas que contiene este paquete, te recomiendo revisar las reglas de validación de Laravel ya que son las mismas que contiene nuestro plugin.