vuelidate的表单验证插件的使用

在vue中,我们使用vuelidate实现表单验证,达到限制用户输入的目的,以及提交时验证表单的目的。
查看官方文档

第一步:安装

可以通过npm安装

   npm install vuelidate --save

然后导入到main.js中

import Vue from 'vue'
import Vuelidate from 'vuelidate'
Vue.use(Vuelidate)

第二步:在组件中使用

绑定数据需要用==v-model.trim==绑定,使用this.$v.user.user_name.$touch()去触发验证事件,this.$v.user.user_name.required为true时表示验证通过

<template>
    <form>
        <input type="text" class="userName" placeholder="请输入用户名" v-model.trim="user.user_name">
         <input type="button" value="登录" class="submit" @click="login">
    </form>
</template>
import { required} from 'vuelidate/lib/validators'
export default {
data(){
        return {
            user:{
                user_name:"",
                }
         }
     },
validations: {
        user: {
            user_name: {
            required,
            },
        }
  },
   methods:{
        login(){
            this.$v.user.user_name.$touch()
            if(!this.$v.user.user_name.required){
                Toast('用户名不能为空');
            }
         }
}

补充:自定义验证规则

新建js文件,在文件中引入
列子:基于正则表达式的验证器

//js文件
import { helpers } from 'vuelidate/lib/validators'
export var phone = helpers.regex('phone', /^1(3|4|5|7|8)\d{9}$/);

//组件中
import {phone} from "../../api/validate.js"
validations: {
            user: {
                mobile: {
                phone,
                },   
          }

基于定位器的验证器
如果您想使用locator策略(与sameAs或requiredIf内置验证器中的定位器策略完全相同),您可以使用ref helper来实现这一点,其方式与在这两个验证器中使用定位器的方式完全相同。

import { req, ref, withParams } from './common'

export default (prop) =>
  withParams({ type: 'requiredIf', prop }, function(value, parentVm) {
    return ref(prop, this, parentVm) ? req(value) : true
  })
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,770评论 1 45
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,082评论 0 29
  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 1,656评论 0 3
  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 786评论 0 3
  • 简单来说就是将jdbc的连接信息例如:驱动,连接地址、数据库账户、数据库密码等放在 xx.properties文件...
    琴匣自鸣阅读 1,312评论 0 1