vuelidate-messages

A small library to help build validation messages from Vuelidate's state.
17,778
Install
npm install vuelidate-messages
Latest Version:0.1.2
Vue:2
License:MIT
Last Updated:Jun 28, 2021
Links: GitLab  ·  npm
Maintainer: nbaroni

vuelidate-messages

A small library to help build error messages from Vuelidate's validation state.

Installation

npm install vuelidate-messages --save

Usage

<template>
  <div>
    <input v-model="name" />
    <span>{{validationMsg($v.name)}}</span>
  </div>
</template>

<script>
import { required, minLength } from 'vuelidate/lib/validators'
import { validationMessage } from 'vuelidate-messages'

const formMessages = {
  required: () => 'Required',
  txtMinLen: ({ $params }) => `Must be at least ${$params.txtMinLen.min} characters.`
}

export default {
  data () {
    return { name: '' }
  },
  validations: {
    name: {
      required,
      txtMinLen: minLength(2)
    }
  },
  methods: {
    validationMsg: validationMessage(formMessages)
  }
}
</script>

API

validationMessages(messages [, options])

Returns a function that accepts a Vuelidate field. The return value of that function is an array of validation messages.

import { validationMessages } from 'vuelidate-messages'

// options
{
  // Require the field to be dirty before returning an error. (default = true)
  dirty: Boolean,

  // Limit the number of error messages that can be returned. (default = 1)
  first: Number
}

validationMessage(messages [, options])

Returns a function that accepts a Vuelidate field. The return value of that function is one validation message (string). An empty string is returned if the field is valid.

import { validationMessage } from 'vuelidate-messages'

// options
{
  // Require the field to be dirty before returning an error. (default = true)
  dirty: Boolean
}

Message context (this)

Your messsage functions are called with the context of the Vue component, so you have access to any plugins, state, etc within the message function. In order for this to work, you cannot use arrow functions. The context of an arrow function cannot be specified at invocation. Here is an example of a message function that uses vue-i18n.

const i18nMessages = {
  en: {
    validation: {
      txtMinLen: 'Must have {n} character | Must have {n} characters'
    }
  }
}

const formMessages = {
  txtMinLen: function ({ $params }) {
    return this.$tc('validation.txtMinLen', $params.txtMinLen.min)
  }
}

Related Packages

vue-vuelidate-jsonschema

Create validation definitions for vuelidate based on json schema

12,642 107
@23zane/vue-validator

Validator based on Vuelidate

4,844 0
vue-dog-form

The simplest vue 3 form validation plugin.

65,599 8
vue-form-2

Vue.js 2 form component

16,113 55
vue-msgs

A vue component of message

12,610 1

Version History

Version Released License
0.1.2 MIT
0.1.1 MIT
0.1.0 MIT
0.0.3 MIT
0.0.2 MIT