Vue项目常见问题(62)vee-validate表单验证使用
目录
gitee仓库地址:https://gitee.com/CMD-UROOT/sph-project/commits/master
gitee仓库地址:https://gitee.com/CMD-UROOT/sph-project/commits/master
大家根据上传历史进行查找你需要的代码
vee-validate
1.安装vee-validate
npm i vee-validate@2 --save
2.引入使用vee-validate
在plugins文件下新建一个validate.js文件:
在src/plugins/validate.js中:
在main.js中:引入validate.js文件
3.完成注册页面的表单验证
我们看到上图其实有5个地方是需要我们去验证的
在src/plugins/validate.js中:
-
//vee-validate插件;表单验证区域
-
import Vue from "vue";
-
import VeeValidate from "vee-validate";
-
//引入进来的是vee-valadiate提供信息提示【中文的】
-
import zh_CN from 'vee-validate/dist/locale/zh_CN'
-
Vue.use(VeeValidate)
-
-
//表单的验证
-
VeeValidate.Validator.localize('zh_CN', {
-
messages: {
-
...zh_CN.messages,//给VeeValidate插件提供【中文提示功能】
-
is: (field) => `${field}必须与密码相同` // 修改内置规则的 message,让确认密码和密码相同
-
},
-
//注册:有五个字段:phone、code、password、password1、agree【将来用中文显示,别用英文】
-
attributes: { // 给校验的 field 属性名映射中文名称
-
phone: '手机号',
-
code: '验证码',
-
password: '密码',
-
password1: '确认密码',
-
agree: '协议'
-
}
-
})
在pages/Register/index.vue中:
手机号验证
先找到手机号的结构:
替换为:
-
<div class="content">
-
<label>手机号:</label>
-
<!--
-
name:给每一个表单元素添加一个名字,需要让vee-valadite区分验证的是哪一个表单元素
-
v-validate=验证规则
-
-->
-
<input type="text" placeholder="请输入你的手机号" v-model="phone" name="phone" v-validate="{ required: true, regex: /^1\d{10}$/ }" :class="{ invalid: errors.has('phone') }">
-
<!-- 表单验证失败:提示错误信息 -->
-
<span class="error-msg">{{ errors.first("phone") }}</span>
-
</div>
验证码验证
先找到验证码的结构:
替换为:
-
<!-- 验证码 -->
-
<div class="content">
-
<label>验证码:</label>
-
<input type="text" placeholder="请输入你的验证码" v-model="code" name="code" v-validate="{ required: true, regex: /^\d{6}$/ }" :class="{ invalid: errors.has('phone') }">
-
<button style="width: 100px;height:38px;" @click="getCode">获取验证码</button>
-
<span class="error-msg">{{ errors.first("code") }}</span>
-
</div>
密码验证
先找到密码的结构:
替换为:
-
<!-- 登录密码 -->
-
<div class="content">
-
<label>登录密码:</label>
-
<input type="password" placeholder="请输入你的登录密码" v-model="password" name="password" v-validate="{ required: true, regex: /^[0-9a-zA-Z]{8,20}$/ }" :class="{ invalid: errors.has('password') }">
-
<span class="error-msg">{{ errors.first("password") }}</span>
-
</div>
确认密码验证
先找到确认密码的结构:
替换为:
-
<!-- 确认登录密码 -->
-
<div class="content">
-
<label>确认密码:</label>
-
<!-- is:紧随的判断是否相等规则 -->
-
<input type="password" placeholder="请输入你的确认密码" v-model="password1" name="password1" v-validate="{ required: true, is:password}" :class="{ invalid: errors.has('password1') }">
-
<span class="error-msg">{{ errors.first("password1") }}</span>
-
</div>
同意复选框开关的验证
在src/plugins/validate.js中:添加自定义校验规则验证同意复选框开关
勾上了就不显示,没勾上就会一直显示必须同意
在pages/Register/index.vue中:
先找到协议的结构:
替换为:
-
<!-- 协议 -->
-
<div class="controls">
-
<input type="checkbox" v-model="agree" name="agree" v-validate="{ required: true,'agree':true}" :class="{ invalid: errors.has('agree') }">
-
<span>同意协议并注册《尚品汇用户协议》</span>
-
<span class="error-msg">{{ errors.first("agree") }}</span>
-
</div>
-
<div class="btn">
-
<button @click="userRegister">完成注册</button>
-
</div>
-
</div>
为了验证完这5条信息之后,点击注册才能发请求,我们需要在
在pages/Register/index.vue中:
测试:
在pages/Register/index.vue中:
业务完成
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggface
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13