vee-validate左右
来源:4-7 VeeValidate的安装及使用(表单验证进阶)
慕粉3884565
2020-09-19 22:15:09
使用
vee-validate 3做的
<template> <div id="app"> <div class="login"> <div class="layui-form layui-form-pane"> <ValidationProvider rules="required|email" v-slot="{ errors }"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="用户" v-model.trim="form.name" placeholder="请输入标题" autocomplete="off" class="layui-input" /> </div> <div class="error layui-form-mid">{{errors[0]}}</div> </ValidationProvider> </div> <div class="layui-form-item layui-form-pane"> <ValidationProvider rules="required|passwordMin" v-slot="{ errors }"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="密码" v-model.trim="form.password" placeholder="请输入密码" autocomplete="off" class="layui-input" /> </div> <div class="error layui-form-mid">{{errors[0]}}</div> </ValidationProvider> </div> <div class="layui-form-item layui-form-pane"> <ValidationProvider rules="required|verificationCode" v-slot="{ errors }"> <label class="layui-form-label">验证码</label> <div class="layui-input-block" style="display: flex"> <input type="text" name="验证码" v-model.trim="form.code" placeholder="请输入验证码" autocomplete="off" class="layui-input" /> <div v-html="code"></div> </div> <div class="error layui-form-mid">{{errors[0]}}</div> </ValidationProvider> </div> </div> <!-- <router-view/> --> </div> </template> <script> import {getVerificationCode} from '@/api/user/index' export default { data() { return { code: "", form: { name: "", password: "", code: "", }, }; }, created(){ this.init() }, methods:{ init(){ getVerificationCode().then(res => { if(res.code === 200){ this.code = res.msg } }) } } }; </script> <style lang="scss"> .login { width: 400px; margin: 52px auto; } .error { color: #ee0a24; font-size: 14px; } </style>
在local/index.js
import { extend, localize } from 'vee-validate'; import { required, email } from 'vee-validate/dist/rules' //如果后面字段与前面字段一样会被覆盖 localize('zh_CN', { name: 'zh_CN', names: { nationalID: '身份证号', patientname: '就诊人姓名', phoneNo: '联系方式', cardType: '就诊卡号' }, messages: { // your messages. _default: (field) => `${field}无效`, after: (field, [target]) => `${field}必须在${target}之后`, alpha_dash: (field) => `${field}能够包含字母数字字符、破折号和下划线`, alpha_num: (field) => `${field}只能包含字母数字字符`, alpha_spaces: (field) => `${field}只能包含字母字符和空格`, alpha: (field) => `${field}只能包含字母字符`, before: (field, [target]) => `${field}必须在${target}之前`, between: (field, [min, max]) => `${field}必须在${min}与${max}之间`, confirmed: (field, [confirmedField]) => `${field}不能和${confirmedField}匹配`, credit_card: (field) => `${field}格式错误`, date_between: (field, [min, max]) => `${field}必须在${min}和${max}之间`, date_format: (field, [format]) => `${field}必须符合${format}格式`, decimal: (field, [decimals = '*'] = []) => `${field}必须是数字,且能够保留${ decimals === '*' ? '' : decimals}位小数`, digits: (field, [length]) => `${field}必须是数字,且精确到${length}位数`, dimensions: (field, [width, height]) => `${field}必须在${width}像素与${height}像素之间`, email: (field) => `请输入正确的邮箱格式`, ext: (field) => `${field}不是一个有效的文件`, image: (field) => `${field}不是一张有效的图片`, included: (field) => `${field}不是一个有效值`, integer: (field) => `${field}必须是整数`, ip: (field) => `${field}不是一个有效的地址`, length: (field, [length, max]) => { if (max) { return `${field}长度必须在${length}到${max}之间` } return `${field}长度必须为${length}` }, max: (field, [length]) => `${field}不能超过${length}个字符`, max_value: (field, [max]) => `${field}必须小于或等于${max}`, mimes: (field) => `${field}不是一个有效的文件类型`, min: (field, [length]) => `不符合最小长度要求`, min_value: (field, [min]) => `${field}必须大于或等于${min}`, excluded: (field) => `${field}不是一个有效值`, numeric: (field) => `${field}只能包含数字字符`, regex: (field) => `${field}格式无效`, required: (field) => `请输入${field}`, url: (field) => field + '不是一个有效的url' } }) extend('email', email) extend('required', required) extend('passwordMin', { validate: value => { return value.length > 5 }, message: "不符合最小长度要求" }) extend('verificationCode', { validate: value => { return value.length == 4 }, message: "验证码长度要求4" })
就是这样测试没问题简单
1回答
要细心~~,你看你的提问的标题,都有错别字。
我们平时给大家出作业的主要目的,是让大家有一个练习的环境,所以一定要认真的对待。
看看其他优秀同学的回复吧~
github地址
运行的gif动图结果说明
详细的REAMDE与心得
扩展比如Reg注册,Forget忘记密码功能
相似问题