公共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. BatteryStatsHelper.java源码分析

    在分析PowerUsageSummary的时候,其实可以发现主要获取应用和服务电量使用情况的实现是在BatteryStatsHelper.java中 还是在线网站http://androidxref. ...

  2. 超详细手把手教你cordova开发使用指南+自定义插件,jsbridge

    Cordova是什么 使用前端技术 开发跨平台web App的工具 底层原理:HTML+CSS搭建页面, JS和原生交互 交互原理:Cordova插件 环境配置 安卓开发基础环境搭建的文章可以参考一下 ...

  3. 在Mac OS上将Node.js连接到XAMPP MySQL服务器一直报错error connecting: Error: connect ECONNREFUSED

    以下為通過node.js連線本機mysql資料庫的方法: var mysql = require('mysql'); var connection = mysql.createConnection({ ...

  4. angular引入http服务创建服务注入

  5. Html音频播放代码

    页面代码: <html> <head> <script src="https://code.jquery.com/jquery-3.1.1.min.js&quo ...

  6. nodejs 环境变量配置

    1.下载 下载地址: https://nodejs.org/zh-cn/download/ 2.安装 安装一直下一步即可,建议安装路径不要包含中文 3.环境变量配置 1)右键[我的电脑],点击[属性] ...

  7. Windows QT程序配置删除网卡IP

    1.Windows下可在CMD控制终端使用Dos命令对指定网卡进行IP配置,需要使用管理员权限打开CMD终端 往网卡添加IP主要有以下两种方法: 方法1: netsh interface ip add ...

  8. P5491 【模板】二次剩余

    \(\text{Summary}\) 实际上是做法的归纳 一切皆是结论性的,没有证明! 模 \(p\) 意义下的二次剩余有 \(\frac{p-1}2\) 个,二次非剩余也恰有那么多 考虑解关于 \( ...

  9. 李超树学习笔记 & JZOJ 5039. 【NOI2017模拟4.2】查询题解

    李超树 它本质上是线段树的拓展运用 解决的问题:平面直角坐标系中,支持插入线段,问 \(x = x_0\) 这条直线上最大的 \(y\) 值 它维护的东西很奇特:优势线段 何为"优势线段&q ...

  10. Vulhub 漏洞学习之:Fastjson

    Vulhub 漏洞学习之:Fastjson 目录 Vulhub 漏洞学习之:Fastjson 0 背景知识 0.1 FastJson POC解析 0.1.1 基于rmi的利用方式 0.1.2 基于ld ...