记录下vue表单验证
公共common文件夹下建立validate.js
/* 是否邮编*/
export function validateMail(rule, value,callback) {
const reg =/^[1-9][0-9]{5}$/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的邮编'));
} else {
callback();
}
}
} /* 是否手机号码或者固话*/
export function validatePhoneTwo(rule, value, callback) {
const reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/;;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码或者固话号码'));
} else {
callback();
}
}
}
/* 是否固话*/
export function validateTelphone(rule, value,callback) {
const reg =/0\d{2}-\d{7,8}/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的固话(格式:区号+号码,如010-1234567)'));
} else {
callback();
}
}
}
/* 是否手机号码*/
export function validatePhone(rule, value,callback) {
const reg =/^[1][3,4,5,7,8][0-9]{9}$/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码'));
} else {
callback();
}
}
}
/* 是否身份证号码*/
export function validateIdNo(rule, value,callback) {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的身份证号码'));
} else {
callback();
}
}
} /* 是否邮箱*/
export function validateEMail2(rule, value,callback) {
const reg =/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
if(value==''||value==undefined||value==null){
callback();
}else{
if (!reg.test(value)){
callback(new Error('请输入正确的邮箱地址'));
} else {
callback();
}
}
}
在自己所需的.vue文件中引入全部,或者按需引入
import {validateIdNo,validatePhone,validateEMail2,validateMail} from './validate.js'
在template中绑定rules,prop写rules里对应的值,如下
<el-form ref="role" :model="role" label-width="120px" :rules="rules">
<el-form-item label="来信人" prop="fromName">
<el-input v-model="role.fromName"></el-input>
</el-form-item> <el-form-item label="邮箱" prop="email">
<el-input type="email" v-model="role.email"></el-input>
</el-form-item> <el-form-item label="来信目的" prop="objectiveType">
<el-select v-model="role.objectiveType" class="handle-select mr10">
<el-option v-for="item in purposeList" :key="item.id" :label="item.dict.name" :value="item.id"></el-option>
</el-select>
</el-form-item> <el-form-item label="手机号" prop="phone">
<el-input v-model="role.phone"></el-input>
</el-form-item> <el-form-item label="固定电话" prop="fixedPhone">
<el-input v-model="role.fixedPhone"></el-input>
</el-form-item> <el-form-item label="地址" prop="address">
<el-input v-model="role.address"></el-input>
</el-form-item> <el-form-item label="邮编" prop="postcode">
<el-input v-model="role.postcode"></el-input>
</el-form-item> <el-form-item label="标题" prop="title">
<el-input v-model="role.title"></el-input>
</el-form-item> <el-form-item label="内容" prop="content">
<el-input type="textarea" :rows="3" v-model="role.content"></el-input>
</el-form-item> <el-form-item label="是否公开" prop="isPublic">
<el-select v-model="role.isPublic" class="handle-select mr10">
<el-option key="1" label="公开" value="1"></el-option>
<el-option key="2" label="不公开" value="0"></el-option>
</el-select>
</el-form-item> <el-form-item label="选择部门" prop="deptId">
<el-cascader
:options="sponsor"
change-on-select
:show-all-levels="false"
v-model="role.deptId"
placeholder="选择部门"
></el-cascader>
</el-form-item>
<el-form-item label="来信人身份证" prop="fromIdCard">
<el-input v-model="role.fromIdCard"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitFormAdd('role')">确 定</el-button>
<el-button @click="dialogVisible = false">取 消</el-button>
</el-form-item>
</el-form>
rules写在data里,完成
rules: {
fromName: [
{ required: true, message: "请输入来信人", trigger: "blur" }
],
email: [{ required: true, message: "请输入邮箱", trigger: "blur" },{validator:validateEMail2,trigger:"blur"}],
objectiveType: [
{ required: true, message: "请输入来信目的", trigger: "blur" }
],
phone: [
{ required: true, message: "请输入来信人手机号", trigger: "blur" },{validator:validatePhone,trigger:"blur"}
],
// fixedPhone: [{ required: true, message: "请输入来信人固定电话", trigger: "blur" }],
address: [{ required: true, message: "请输入地址", trigger: "blur" }],
postcode: [{ required: true, message: "请输入邮编", trigger: "blur" },{validator:validateMail,trigger:"blur"}],
title: [{ required: true, message: "请输入来信题目", trigger: "blur" }],
content: [
{ required: true, message: "请输入来信内容", trigger: "blur" }
],
isPublic: [{ required: true, message: "必填选项", trigger: "blur" }],
status: [{ required: true, message: "选择状态", trigger: "blur" }],
deptId: [
{ required: true, message: "请输入来信部门id", trigger: "blur" }
],
fromIdCard: [
{ required: true, message: "请输入来信人身份证号", trigger: "blur" },{validator:validateIdNo,trigger:"blur"}
]
}
记录下vue表单验证的更多相关文章
- vue表单验证--veevalidate使用教程
vue表单验证----vee-validate使用教程 官网:https://baianat.github.io/vee-validate/ 一.安装 npm install vee-validate ...
- 写一个简单易用可扩展vue表单验证插件(vue-validate-easy)
写一个vue表单验证插件(vue-validate-easy) 需求 目标:简单易用可扩展 如何简单 开发者要做的 写了一个表单,指定一个name,指定其验证规则. 调用提交表单方法,可以获取验证成功 ...
- vue 表单验证实例
1.注册 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- vue表单验证:vee-validate中文提示
官方文档:https://baianat.github.io/vee-validate/guide/ vee-validate可用于vue项目中进行表单验证,使用方法在官方API上都可以查到: 使用过 ...
- Vue表单验证插件的制作过程
一.表单验证模块的构成 任何表单验证模块都是由 配置――校验――报错――取值 这几部分构成的. 配置: 配置规则 和配置报错,以及优先级 校验: 有在 change 事件校验, 在点击提交按钮的时候校 ...
- ThinkPHP框架下的表单验证
之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...
- Vue 表单验证插件
verify github:https://github.com/liuyinglong/verifynpm:https://www.npmjs.com/package/vue-verify-plug ...
- vue 表单验证省市县三联动
<el-col :span="24"> <el-form-item label="所在地区" prop="region" ...
- vue表单验证不通过,依然能执行点击事件里面的代码?
遇到的问题:表单提交的时候,写了rules,明明验证不通过依然执行了点击事件里面的代码. 这个验证有什么用? 后来 我看elementUI组件才发现,我漏写了几行代码. methods里面这样写 完美 ...
- 一个不错的vue表单验证插件
github文档 用着不错,官方的文档例子很简单 <body> <div id="app"> <validator name="valida ...
随机推荐
- 消息队列(Message Query)的初学习
消息队列(Message Query)的初学习 摘要:本篇笔记主要记录了对于消息队列概念的初次学习.消息队列的基础知识. 目录 消息队列(Message Query)的初学习 1.何为消息? 2. ...
- AtCoder Regular Contest 148 B - dp
题面 For a string \(T\) of length \(L\) consisting of d and p, let \(f(T)\) be \(T\) rotated \(180\) d ...
- 数字IC设计流程
数字IC设计流程 简单介绍数字IC设计流程
- 看不懂打我系列------图文并茂基于CentOS Linux release 7.8.2003 Core安装并Docker化你的Node.js应用
@图文并茂基于CentOS Linux release 7.8.2003 Core安装并Docker化你的Node.js应用 简体中文 | English 说明 本文介绍如何在CentOS Linux ...
- .NET 入门到高级路线
.NET 入门到高级路线 [c# 基础语法](# CSharp基础语法) [.NET Core 基础知识](# .NET Core 基础知识) [ASP.NET Core 基础知识概述](# ASP. ...
- GDOI 2021 PJ 总结
Day 0.5 在门口等了好久,终于进去了. Day 1 下午来到考场,发现自己承诺书没有拿,然后就跑到宿舍去拿,回来发现只要身份证. T1一眼是个博弈,发现不太好打,先跳. T2发现最多消耗4320 ...
- 现代图片性能优化及体验优化指南 - 图片类型及 Picture 标签的使用
图片资源,在我们的业务中可谓是占据了非常大头的一环,尤其是其对带宽的消耗是十分巨大的. 对图片的性能优化及体验优化在今天就显得尤为重要.本文,就将从各个方面阐述,在各种新特性满头飞的今天,我们可以如何 ...
- 这是一篇乖巧的草稿——vscode上传代码到代码托管平台GitHub
一.在GitHub上创建一个远程仓库: 以上,就创建好了一个名为pythonStudy的仓库,现在先别把它关掉,先最小化 二.安装版本管理工具git:git属于无脑安装,可以更改安装路径 打开项目文件 ...
- 超详细!Jmeter性能测试
前言 性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据. 测试流程: 需求分析→环境搭建→测试 ...
- linux 基础(10)进程管理
使用 ps 观察程序 ps -l ps程序可以查询当前在运行的进程信息.ps -l可以列出详细的信息,默认仅列出当前 bash 相关的进程. sudo -i ps -l F S UID PID PPI ...