关于element-ui表单验证(自定义验证规则)
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
labelPosition="top"
:inline="true"
class="demo-ruleForm"
>
<el-row :gutter="">
<el-col :span="">
<el-form-item :label="$t('joinUs.surname')" prop="surname">
<el-input class="edit-input" v-model="ruleForm.surname"></el-input>
</el-form-item>
</el-col>
<el-col :span="">
<el-form-item :label="$t('joinUs.givenName')" prop="givenName">
<el-input class="edit-input" v-model="ruleForm.givenName"></el-input>
</el-form-item>
</el-col>
</el-row> <el-row :gutter="">
<el-col :span="">
<el-form-item :label="$t('joinUs.email')" prop="email">
<el-input class="edit-input" v-model="ruleForm.email"></el-input>
</el-form-item>
</el-col>
<el-col :span="">
<el-form-item :label="$t('joinUs.phone')" prop="phoneNumber" required>
<el-row class="edit-tel">
<el-col :span="">
<el-input class="edit-tel1" v-model="phone1"></el-input>
</el-col>
<el-col class="line" :span="">—</el-col>
<el-col :span="">
<el-input class="edit-tel2" v-model="phone2"></el-input>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
</el-form>
需求:
必填:
surname givenName email phoneNumber
正则:
surname 只允许输入英文
givenName 只允许输入中文
phoneNumber 只允许输入1-20个数字,
email 邮箱
data () {
return {
ruleForm: {
surname: "",
givenName: "",
email: "",
phoneNumber: ""
}
phone1: "",
phone2: ""
}
}
由于国际化问题,切换时在 data 中不起作用,需要将表达式放到 computed 属性中
computed: {
rules () {
var validateSurnmae = (rule, value, callback) => {
let reg = /^[A-Za-z]+$/
if (!reg.test(value)) {
callback(new Error(this.$t('joinUs.surnameErr3')))
} else {
callback()
}
};
var validateGivenName = (rule, value, callback) => {
let reg = /^[\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error(this.$t('joinUs.givenNameErr3')))
} else {
callback()
}
};return {
surname: [
{ required: true, message: this.$t('joinUs.surnameErr1'), trigger: "blur" },
{ validator: validateSurnmae, trigger: "blur" },
{ min: , max: 2, message: this.$t('joinUs.surnameErr2'), trigger: "blur" }
],
givenName: [
{ required: true, message: this.$t('joinUs.givenNameErr1'), trigger: "blur" },
{ validator: validateGivenName, trigger: "blur" },
{ min: , max: 2, message: this.$t('joinUs.givenNameErr2'), trigger: "blur" }
]
email: [
{ required: true, message: this.$t('joinUs.emailError'), trigger: "blur" },
{
type: "email",
message: this.$t('joinUs.emailError'),
trigger: ["blur", "change"]
}
],
phoneNumber: [
{ required: true, message: this.$t('joinUs.phoneNumberError1'), trigger: "blur" },
{ type: 'number', message: this.$t('joinUs.phoneNumberError2'), trigger: "blur" }
]
}
}
}
因为项目需要,现在的 tel 电话 是加区号的

所以写成了上面那种形式,
两个框的单独的,然后用watch监听输入框,把两个框的内容拼接
watch: {
'phone1': function (val) {
this.ruleForm.phoneNumber = parseInt(val + this.phone2)
},
'phone2': function (val) {
this.ruleForm.phoneNumber = parseInt(this.phone1 + val)
}
},
这样就得到了总的电话号码。然后去给总的号码添加校验规则
OK!
关于element-ui表单验证(自定义验证规则)的更多相关文章
- 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题
方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加 ...
- vue踩坑:vue+ element ui 表单验证有值但验证失败。
一.如图:有值但是验证失败 二. <el-form :model="form" :rules="rules"> <el-form-item l ...
- Angular11 模板表单、响应式表单(自定义验证器)、HTTP、表单元素双向绑定
1 模板表单 模型通过指令隐式创建 技巧01:需要在模块级别引入 FormsModule ,通常在共享模块中引入再导出,然后在需要用到 FormsModule 的模块中导入共享模块就可以啦 impor ...
- easyui 表单和自定义验证扩展和js自定义返回值
================jsp==========================<form method="post" id="regfrminp&qu ...
- iview表单密码自定义验证
From中定义 ref="passwordForm" 获取dom节点 :model="passwordForm" 关联表单数据对象 :rules=&quo ...
- vue开源Element UI表单设计及代码生成器
在日常的开发工作中,表单开发是较为繁琐且重复的.本文介绍一个我自己写的,提高开发效率的小工具. 1 可视化设计器 设计器基于Element UI ,可通过点击或拖拽的方式设计基本表单, 设计器生成的代 ...
- (vue.js)element ui 表单重置
el-form需要接收一个model,并且需要配合el-form-item一起使用,并且在el-form-item上绑定prop属性,resetField方法才能好使. <el-form :mo ...
- vue+element 动态表单验证
公司最近的项目有个添加动态表单的需求,总结一下我在表单验证上遇到的一些坑. 如图是功能的需求,这个功能挺好实现的,但是表单验证真是耗费了我一些功夫. vue+element在表单验证上有一些限制,必须 ...
- 如何在.Net Core MVC中为动态表单开启客户端验证
非Core中的请参照: MVC的验证 jquery.validate.unobtrusive mvc验证jquery.unobtrusive-ajax 参照向动态表单增加验证 页面引入相关JS: &l ...
- 第一百八十六节,jQuery,验证表单插件,Ajax 表单插件,验证和提交表单
jQuery,验证表单插件,Ajax 表单插件,验证和提交表单 HTML <form id="reg" method="post" action=&quo ...
随机推荐
- 洛谷 P1962 斐波那契数列
题目链接:https://www.luogu.org/problemnew/show/P1962 题目大意: 略 分析: 由于数据规模很大,需要用矩阵快速幂来解. 代码如下: #pragma GCC ...
- 深度解读Tomcat中的NIO模型(转载)
转自https://www.jianshu.com/p/76ff17bc6dea 一.I/O复用模型解读 Tomcat的NIO是基于I/O复用来实现的.对这点一定要清楚,不然我们的讨论就不在一个逻辑线 ...
- MySQL数据库8.0.15 安装教程
第一步:安装MySQL服务 这里下载完成的是一个压缩文件,直接将里面的‘mysql-8.0.15-winx64'文件夹解压到你想要安装的路径即可,我是直接安装在C盘的. 解压完后的文件路径如下图: 在 ...
- 一、操作m'y's'ql
一.创建framework框架的控制台默认不支持mysql
- Oracle查看表实际占用空间和实际行数
select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC;//实际行数 analyze table emp co ...
- BZOJ2882工艺
题目描述 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方 ...
- P4178 Tree(点分治)
题面要求小于等于K的路径数目,我么很自然的想到点分治(不会的就戳我) 这道题的统计答案与模板题不一样的地方是由等于K到小于等于K 那么我们可以把每一个子节点到当前根(重心)的距离排序,然后用类似双指针 ...
- 状压dp(状态压缩&&dp结合)学习笔记(持续更新)
嗯,作为一只蒟蒻,今天再次学习了状压dp(学习借鉴的博客) 但是,依旧懵逼·································· 这篇学习笔记是我个人对于状压dp的理解,如果有什么不对的 ...
- linux学习------磁盘性能测试
测试服务器 1核1G配置 下载后放在你想测试的目录下,执行preparefile.sh准备测试文件,完成后执行runTest.sh执行测试,等待测试结果完成. {sysbench_bin}> ...
- console.log()在IE下不兼容问题解决
样式改的顺风顺水,到了IE果然出了问题(奇怪,我为什么要说‘果然’?),如果在JS文件中写了console.log()方法,样式就会有缺陷,但是打开IE下的开发者工具就没问题(IE这都是什么鬼!!), ...