如何在Vue的项目里对element的表单验证进行封装
介绍需求
熟悉并优化公司项目的第五天,领导说能不能把表单验证封装一下,我打开代码一看

由于是后台管理系统,无数个需要验证的输入框,由于截图长度受限,只能展示部分,类似于这种页面还有无数个!代码重复率非常高,难怪需要封装了。
实现思路
1.将代码从页面中抽离,在utils文件夹新建js文件存储

2.新增js代码
let FormValidate = (function () {
// eslint-disable-next-line
function FormValidate() {}
// From表单验证规则 可用于公用的校验部分
FormValidate.Form = function () {
return {
// 用户角色,姓名的验证规则
name: function (rule, value, callback) {
if (!value) {
return callback(new Error('用户角色不能为空'))
} else {
callback()
}
},
// 角色描述验证规则
description: function (rule, value, callback) {
if (!value) {
return callback(new Error('用户描述不能为空'))
} else {
callback()
}
},
}
}
return FormValidate
}())
exports.FormValidate = FormValidate
3.在页面中引入

附上代码:
// 自封装表单验证
import Format from "@/utils/FormValidation.js";
4.接下来,三方联动
HTML部分:
有三个非常重要的属性
1.model 表单数据对象
2.rules 表单验证规则
3.prop 表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的

js部分:
data(){
return{
//定义表单数据对象
rules: {
rolename: "",
description: "",
type: true,
},
//element 表格组件 表单验证规则
vailmsg: {
rolename: [
{
required: true,
validator: Format.FormValidate.Form().name,
trigger: "blur",
},
],
description: [
{
required: true,
validator: Format.FormValidate.Form().description,
trigger: "blur",
},
],
},
}
}
至此,封装表单验证结束,需要新的验证,直接去utils里的js新建然后导入页面引用即可!
更新优化:
实现传参,减少公共js代码过多
页面调用部分这样写:
Format.FormValidate.Form("用户角色不能为空").notEmpty,
公共js里这样写:
let FormValidate = (function () {
// eslint-disable-next-line
function FormValidate() {}
// From表单验证规则 可用于公用的校验部分
FormValidate.Form = function (errorMessage) {
// errorMessage 是我们传过来的提示文字 这样就可以一个验证多用 不用重复写
return {
// 输入框不为空的验证规则
notEmpty: function (rule, value, callback) {
console.log('e :>> ', errorMessage);
if (!value) {
return callback(new Error(errorMessage))
} else {
callback()
}
},
}
}
return FormValidate
}())
// 向外暴露内部变量
exports.FormValidate = FormValidate
如何在Vue的项目里对element的表单验证进行封装的更多相关文章
- vue+element 动态表单验证
公司最近的项目有个添加动态表单的需求,总结一下我在表单验证上遇到的一些坑. 如图是功能的需求,这个功能挺好实现的,但是表单验证真是耗费了我一些功夫. vue+element在表单验证上有一些限制,必须 ...
- 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题
方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加 ...
- react 项目实战(三)表单验证
我们需要记录每一个字段当前的有效状态,有效时隐藏错误信息,无效时显示错误信息. 而这个有效/无效,可以在表单值改变的时候进行判断. 我们对/src/pages/UserAdd.js进行修改: 首先修改 ...
- vue踩坑:vue+ element ui 表单验证有值但验证失败。
一.如图:有值但是验证失败 二. <el-form :model="form" :rules="rules"> <el-form-item l ...
- element自定义表单验证
element-ui框架下修改密码弹窗进行表单验证. 除了基础校验,密码不为空,长度不小于6字符,需求中还需校验密码由数字和字母组合. 处理代码如下: <el-dialog :visible.s ...
- vue iview modal弹出框 form表单验证
一.ref="addApply" :model="addApply" :rules="ruleValidate" 不要忘记prop 二. ...
- Element Form表单实践(上)
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题
项目里有些不同页面间的日期显示格式是不同的, 第一个问题: 比如我用日期控件WdatePicker.js导包后只需在input标签里加上onClick="WdatePicker()" ...
- Vue项目之实现登录功能的表单验证!
Vue项目之实现登录功能的表单验证! 步骤: 配置 Form表单验证; 1.必须给el-from组件绑定model 为表单数据对象 2 给需要验证的表单项 el-form-item 绑定 prop 属 ...
随机推荐
- lua编译为二进制方式
当不想使用户看到lua源码,文本文件可以通过luac,把lua文本文件"编译"成二进制的文件. lc@lc-virtual-machine:~/lua$ luac -o redis ...
- [bug] Nginx:src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
参考 https://blog.csdn.net/yu_pan_love_cat/article/details/103035513 https://www.cnblogs.com/hxlinux/p ...
- 诸神之眼-Nmap 教程 2
|>>>简版先附上<<<| Nmap基础学习 语法 nmap + [空格] + <选项|多选项|协议> + [空格]+ <目标> 如 nma ...
- 037.Python的UDP语法
UDP语法 1 创建一个socket的UDP对象 import socket #创建对象 socket.SOCK_DGRAM 代表UDP协议 sk = socket.socket(type=socke ...
- DOCKER学习_018:Docker-Compose文件简介
Docker-Compose文件 通过之前的示例,其实我们可以看到,所有服务的管理,都是依靠docker-compose.yml文件来实现的.那么我们接下来就详细说一说docker-compose.y ...
- 【大咖直播】Elastic 可观测性实战工作坊
Elastic 的可观测性解决方案是基于 Elastic Stack 的一站式解决方案.该解决方案具有完备的日志.指标.APM 和可用性采集能力,可以在大规模和云原生的环境下完成基于服务质量目标的管理 ...
- Python break/continue - Python零基础入门教程
目录 一.break 二.continue 三.重点总结 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 Python wh ...
- flink的checkpoint页面监控
flink web页面中提供了针对Job Checkpoint相关的监控信息.Checkpoint监控页面共有overview.history.summary和configuration四个页签,分别 ...
- 安装T4环境
Install-Package Microsoft.VisualStudio.TextTemplating.14.0 -Version 14.3.25407
- 火币HBAI量化币圈唯一免费量化炒币机器人
量化交易是一种投资方法.以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策略,极大地减少了投资者情绪波动的影响,避免 ...