公共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表单验证的更多相关文章

  1. vue表单验证--veevalidate使用教程

    vue表单验证----vee-validate使用教程 官网:https://baianat.github.io/vee-validate/ 一.安装 npm install vee-validate ...

  2. 写一个简单易用可扩展vue表单验证插件(vue-validate-easy)

    写一个vue表单验证插件(vue-validate-easy) 需求 目标:简单易用可扩展 如何简单 开发者要做的 写了一个表单,指定一个name,指定其验证规则. 调用提交表单方法,可以获取验证成功 ...

  3. vue 表单验证实例

    1.注册 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. vue表单验证:vee-validate中文提示

    官方文档:https://baianat.github.io/vee-validate/guide/ vee-validate可用于vue项目中进行表单验证,使用方法在官方API上都可以查到: 使用过 ...

  5. Vue表单验证插件的制作过程

    一.表单验证模块的构成 任何表单验证模块都是由 配置――校验――报错――取值 这几部分构成的. 配置: 配置规则 和配置报错,以及优先级 校验: 有在 change 事件校验, 在点击提交按钮的时候校 ...

  6. ThinkPHP框架下的表单验证

    之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...

  7. Vue 表单验证插件

    verify github:https://github.com/liuyinglong/verifynpm:https://www.npmjs.com/package/vue-verify-plug ...

  8. vue 表单验证省市县三联动

    <el-col :span="24"> <el-form-item label="所在地区" prop="region" ...

  9. vue表单验证不通过,依然能执行点击事件里面的代码?

    遇到的问题:表单提交的时候,写了rules,明明验证不通过依然执行了点击事件里面的代码. 这个验证有什么用? 后来 我看elementUI组件才发现,我漏写了几行代码. methods里面这样写 完美 ...

  10. 一个不错的vue表单验证插件

    github文档 用着不错,官方的文档例子很简单 <body> <div id="app"> <validator name="valida ...

随机推荐

  1. ElasticSearch必知必会-进阶篇

    京东物流:康睿 姚再毅 李振 刘斌 王北永 说明:以下全部均基于elasticsearch8.1 版本 一.跨集群检索 - ccr 官网文档地址: https://www.elastic.co/gui ...

  2. LRU 缓存

    力扣题目 146. LRU 缓存 实现 LRU 缓存需要用到哈希链表 LinkedHashMap. LinkedHashMap 是由哈希表和双链表结合而成的,它的结构如下所示. 用自带的 Linked ...

  3. Git入门图文教程(1.5W字40图)🔥🔥--深入浅出、图文并茂

    01.认识一下Git!-简介 Git是当前最先进.最主流的分布式版本控制系统,免费.开源!核心能力就是版本控制.再具体一点,就是面向代码文件的版本控制,代码的任何修改历史都会被记录管理起来,意味着可以 ...

  4. 通过一个示例形象地理解C# async await 非并行异步、并行异步、并行异步的并发量控制

    前言 接上一篇 通过一个示例形象地理解C# async await异步 我在 .NET与大数据 中吐槽前同事在双层循环体中(肯定是单线程了)频繁请求es,导致接口的总耗时很长.这不能怪前同事,确实难写 ...

  5. Nginx 安装perl

    1 安装包下载 https://www.cpan.org/src获取最新偶数版本下载链接并替换(偶数版本为稳定版) 2 上传到服务器解压 tar -zxvf perl-5.36.0.tar.gz 3 ...

  6. Vue视频 | 【Vue2 + Vue3 前端教程】完整版

    目前大部分公司还是以vue.react技术为主的,而Vue中还是以Vue2为主流,但不可否认Vue3是未来所必须的且已有这个趋向了 今天给大家介绍一个Vue的教程 里面既有现在主流的Vue2 同时也存 ...

  7. Kinsoku jikou desu新浪股票接口变动

    1.问题原因 新浪股票接口返回如标题所示值:Kinsoku jikou desu! http://hq.sinajs.cn/list=code 新浪股票的接口变动,需要在请求头中添加Referer值. ...

  8. voxel体素网络滤波器

    1.简介 在进行建图的时候,由于多个视角内存在视野重叠,即多个摄像头看到同样的像素点,这样在重叠区域内会存在大量的位置十分相近的点,这会占用很多内存空间.体素网络滤波保证了在某个一定大小的立方体内只有 ...

  9. Vue3

    VUE.3 1.前端工程化: 小白视角 会写HTML. css.JavaScript就会前端开发 需要美化页面的样式,就拽一个bootstrap来 需要操作DOM或者发起Ajax请求,就再拽一个Jqu ...

  10. C语言知识补充 --来自菜鸟教程的指针复习

    1.system 打开其他应用 1.指针演练  C 指针. 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址. #in ...