VeeValidate_2x配合Vue2的使用

1.安装模块

npm i vee-validate@2 --save

2.引入模块,在VUE中使用

import Vue from 'vue'
import veeValidate from 'vee-validate' 
Vue.use(veeValidate);

3.template模板中使用

   <input
    placeholder="请输入你的手机号"
    name="phone" 
    v-validate="{ required: true, regex: /^1\d{10}$/ }"
    v-model="phone" 
    :class="{ invalid: errors.has('phone') }"
   />
   <span class="error-msg">{{ errors.first('phone') }}</span>

<!--  参数详细说明 --> 
<!--   1.name='phone'           当前插件指定的名称 -->
<!--   2.v-validate             确定校验规则 -->
<!--   3.v-module ='phone'      确定校验绑定数据 -->
<!--   4.invalid                由插件提供的一个类名-->
<!--   5.errors.has('phone')    调用了has方法来判断错误对象中是否有"phone"这个字段 -->
<!--   6.errors.first('phone')  调用 first 方法显示当前的错误信息-->

4.正则的校验规则 v-validate 对象

/**
  required                    - 必传参数 
  regex:{pattern}             - 值必须符合正则pattern 
  is:{data}                   - 值必须与data数据相同
  after{target}               - 比target要大的一个合法日期,格式(DD/MM/YYYY) 
  alpha                       - 只包含英文字符 
  alpha_dash                  - 可以包含英文、数字、下划线、破折号 
  alpha_num                   - 可以包含英文和数字 
  before:{target}             - 和after相反 
  between:{min},{max}         - 在min和max之间的数字 
  confirmed:{target}          - 必须和target一样 
  date_between:{min,max}      - 日期在min和max之间 
  date_format:{format}        - 合法的format格式化日期,格式(yyyy-MM-dd) 
  decimal:{decimals?}         - 数字,而且是decimals进制 
  digits:{length}             - 长度为length的数字 
  dimensions:{width},{height} - 符合宽高规定的图片 
  email                       - 邮箱
  ext:[extensions]            - 后缀名 
  image                       - 图片 
  in:[list]                   - 包含在数组list内的值 
  ip                          - ipv4地址 
  max:{length}                - 最大长度为length的字符 
  mimes:[list]                - 文件类型 
  min:{length}                - max相反 
  mot_in                      - in相反 
  numeric                     - 只允许数字 
  size:{kb}                   - 文件大小不超过 
  url:{domain?}               - (指定域名的)url
*/

5.安装汉化和重写变量名

        1.引入汉化包,安装汉化

import zh_CN from 'vee-validate/dist/locale/zh_CN' 
veeValidate.Validator.localize('zh_CN',{})

        2.重写汉化的is规则

veeValidate.Validator.localize('zh_CN',{
    messages: {
        ...zh_CN.messages,
        is:(field)=>`${field}必须与密码相同`
    }
})

        3.给name对应的变量增加中文名

veeValidate.Validator.localize('zh_CN',{
    messages: {...},
    attributes:{
        phone:'手机号',
        code:'验证码',
        password:'密码',
        password1:'重复密码',
        isAgree:'协议',
    }
})

6.提交表单时的整体验证

async submit() {
    // 单独校验  在输入内容的时候直接就开始校验
    // 整体验证  在点击完成注册的是由对所有的表单项进行验证
    const success = await this.$validator.validateAll();
    // 对所有表单项进行验证,验证通过返回true
    if (!success) {
        return
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值