vue-validator 使用详解

 

自定义配置文件(validateConfig):

  

import Vue from ‘vue‘
import VeeValidate, { Validator } from ‘vee-validate‘

const dictionary = {
  en: {
    messages: {
      // <input type="text" v-model="phoneNumber" name="phone" v-validate="‘required|phone‘">
      // 不满足required条件时,显示的提示对应下面的设置
      required: (field) => `${field} is necessary!`,
    },
    attributes: {
      // <input type="text" v-model="phoneNumber" name="phone" v-validate="‘required|phone‘">
      // 上述messages提示信息中field显示的内容在此设置,对应标签的name属性
      phone: ‘Phone Number‘,
    }
  }
}

// 引用上述设置
Validator.localize(dictionary)

// 自定义验证规则,取名为phone, 通过该方式使用v-validate="‘required|phone‘"
Validator.extend(‘phone‘, {
  // 验证规则,符合规则通过,否则不通过 (规则为美国电话号码)
  validate: (value, ref) => {
    return /^(\d3|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$/.test(value)
  },
  // 提示信息,不符合规则提示语
  // <span v-show="errors.has(‘phone‘)" class="error-message"> {{ errors.first(‘phone‘) }} </span>
  getMessage: (field) => ‘The ‘ + field + ‘ is invalid.‘
})

// 事件触发规则,在输入框中输入后点击事件触发验证,默认为实时验证
Vue.use(VeeValidate, { events: ‘blur‘ })

 

main.js中引入文件
 import ‘@/assets/js/validateConfig‘

页面使用:

    <label>Phone Number</label>
    <input type="text" v-model="phoneNumber" name="phone" v-validate="‘required|phone‘">
    <span v-show="errors.has(‘phone‘)" class="error-message"> {{ errors.first(‘phone‘) }} </span>

提交方法中引入,进行校验,不通过中断执行

update () {
  let result = await this.$validator.validateAll()
  if (!result) {
     return
  }
  ....}

对自定义的组件(自定义select),数据发生变化,validate拿不到新的数据,需要使用 v-validate:userId="‘required|phone‘"
指定检测userId,并在触发事件中使用 await this.$validator.validateAll()来对提示语关闭或显示(基于事件触发验证情况)

eg:
        <my-select :select="users" :value="userId" @input="idChanged"
          name="userId" v-validate:userId="‘required‘"></my-select>
        <span v-show="errors.has(‘userId‘)" class="error-message"> {{ errors.first(‘userId‘) }} </span>

        idChanged (value) {
            this.userId = value
            this.$validator.validateAll()
        }

  

原文地址:https://www.cnblogs.com/smileself/p/8269765.html

时间: 2024-07-28 14:10:53

vue-validator 使用详解的相关文章

【05】Vue 之 实例详解与生命周期

Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着.销毁等过程进行js控制. 5.1. Vue实例初始化的选项配置对象详解 前面我们已经用了很多次 new Vue({...})的代码,而且Vue初始化的选项都已经用了data.methods.el.computedd等,估计您看到这里时,应该已经都明白了他们的作用,我们就详细讲解一下他们的使用情况.更

vue插件开发流程详解-从开发到发布至npm(一)

vue的插件开发 1.本地开发 1.1 初始化本地开发项目 我们采用vue-cli,初始化一个vue 项目.这个不做详解,请移步到 这里,查看具体详细.初始化后就是这样的项目结构: 其他的文件目录不是本节内容重点,不做详解,请移步这里查看. 1.2 test.js 的内容 ,这是插件的入口文件 关于为什么需要在install这个方法这里添加我们的方法,可以参考官网.https://cn.vuejs.org/v2/guide/plugins.html  这里只是用了其中的一部分的内容. test.

Vue生命周期详解

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } span.s1 { font: 12.0px ".PingFang SC" } 根组件实例:8个 (beforeCreate.created.beforeMount.mounted.beforeUpdate.updated.beforeDestroy.destroyed) p.p1 { mar

vue.js 指令详解

指令的作用:当表达式的值改变时把特殊的行为应用到DOM上,指令的值限定为绑定表达式(表达式加过滤器(0或多个)) 2.1.1 v-if v-if表达式值为false,对应元素从DOM中移除(相当于display:none,不占空间,最与display贴近的是下一个要介绍的元素),否则,对应元素的一个克隆将被重新插入到DOM中. <div id="example">      <p v-if="greeting">show or hide<

Jfinal中的validator理解/详解

为了验证账号密码不为空,需要在控制器下的login()方法前添加验证器: 1 @Before(LoginValidator.class) 2 public void login() { 而validator是实现了Interceptor(拦截器)接口.validator的用法如下: 1 public class LoginValidator extends Validator { 2 @Override 3 protected void validate(Controller controlle

Vue.js 插件开发详解

前言 随着 Vue.js 越来越火,Vue.js 的相关插件也在不断的被贡献出来,数不胜数.比如官方推荐的 vue-router.vuex 等,都是非常优秀的插件.但是我们更多的人还只停留在使用的阶段,比较少自己开发.所以接下来会通过一个简单的 vue-toast 插件,来了解掌握插件的开发和使用. 原文作者:林鑫,作者博客:https://github.com/lin-xin/blog 认识插件 想要开发插件,先要认识一个插件是什么样子的. Vue.js 的插件应当有一个公开方法 instal

vue计算属性详解——小白速会

每天学习一点点 编程PDF电子书.视频教程免费下载: http://www.shitanlife.com/code 一.什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> {{ message.split('').reverse().join('') }} </div> 这里的表达式包含3个操作,并不是很清晰,所以遇到复杂逻辑时应该使用Vue特带的

vue:vuex详解

什么是Vuex? 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 个人理解:Vuex是用来管理组件之间通信的一个插件 为什么要用Vuex? 我们知道组件之间是独立的,组件之间想要实现通信,我目前知道的就只有props选项,但这也仅限于父组件和子组件之间的通信.如果兄弟组件之间想要实现通信呢?嗯..,方法应该有.抛开怎么实现的问题,试想一下,当做中大型项目时,面对一大堆组件之间的通

Vue生命周期函数详解

vue实例的生命周期 1 什么是生命周期(每个实例的一辈子) 概念:每一个Vue实例创建.运行.销毁的过程,就是生命周期:在实例的生命周期中,总是伴随着各种事件,这些事件就是生命周期函数: 生命周期:实例的生命周期,就是一个阶段,从创建到运行,再到销毁的阶段: 生命周期函数:在实例的生命周期中,在特定阶段执行的一些特定的事件,这些事件,叫做 生命周期函数: 生命周期钩子:就是生命周期事件的别名而已: 生命周期钩子 = 生命周期函数 = 生命周期事件 2 主要的生命周期函数分类 创建期间的生命周期

Vue生命周期详解(1)- 单个组件

刚接触vue,使用vue并没意识到生命周期的重要性.直到项目深入,在解决父组件异步加载数据传给子组件并渲染时首次渲染异常的问题时,浪费了很多时间,才发现自己对vue生命周期理解的欠缺.因此,这次专门重新学习一下vue的生命周期并总结在这里分享,希望对大家有所帮助. 首先上官方大图(是不是很高大上?然而,有点晦涩,对初学者不是很友好!) 不过不用担心,咱们程序员不就是实践出真知嘛!上代码: 1 <!DOCTYPE html> 2 <html lang="en">