1、设计校验方式:

  我们表单验证的rules一般封装一个单独的js文件,比如我之前写的这个博客:

  ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证

  可以修改下:公共的校验写在公共里面,个性化的校验写在methods里面

  :rules="[rules.password,{validator:valPwd,trigger:'blur'}]"

//先导入公共验证文件
import {validator,getVeriCode} from '@/utils'
//data里面
data(){
return {rules:validator}
}
//在methods里面定义新的验证函数valPwd
methods:{
valPwd(rule, value, callback) {
if (!value) {
callback(new Error('请再次输入密码'));
} else if (value !== this.resetPassword.password) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
}
}
//template里面绑定验证规则
<el-form-item prop="repeatPassword" :rules="[rules.password,{validator:valPwd,trigger:'blur'}]">
<el-input type="password" v-model="resetPassword.repeatPassword" placeholder="重复密码"></el-input>
</el-form-item>

2、同时校验多个表单

  在保存某个页面时,让页面中的两个form都通过校验才能保存,方法其实挺多的,主要是看下这个Promise的写法

var p1=new Promise(function(resolve, reject) {
this.$refs[form1].validate((valid) => {
if(valid){
resolve();
}
})
});
var p2=new Promise(function(resolve, reject) {
this.$refs[form2].validate((valid) => {
if(valid){
resolve();
}
})
}); Promise.all([p2,p1]).then(function(){
alert("验证通过了");
});

3、只验证表单里面部分内容:比如我们需要获取验证码的时候,就只需要验证表单里面的手机号就行了

getCode(){
this.$refs['resetPassword'].validateField('phone',(validMessage)=>{
if(validMessage != ""){
return false;
}
this.codeDisabled = true;
let countTime = setInterval(() => {
--this.countdown;
if(this.countdown == ){
clearTimeOut(countTime);
this.countdown = ;
this.codeDisabled = false;
return;
}
},);
})
}

  看文档里面都有的

  我们也可以封装一下

//获取验证码
export const getVeriCode = (vueInstance,formName,phone) => {
vueInstance.$refs[formName].validateField('phone',(validMessage)=>{
if(validMessage != ""){
return false;
} getVeriCodeApi(phone).then((res) =>{
if(res.status === ){
vueInstance.$message({
message:'验证码已发送,请注意查收。',
type:'success'
})
}
}) vueInstance.codeDisabled = true;
let countTime = setInterval(() => {
--vueInstance.countdown;
if(vueInstance.countdown == ){
clearInterval(countTime);
vueInstance.countdown = ;
vueInstance.codeDisabled = false;
return;
}
},);
})
}
//调用
getCode(){
getVeriCode(this,'login_code',this.login_code.phone)
},

ElementUI表单验证使用的更多相关文章

  1. elementUI表单验证

    elementUI表单验证非常方便,我们直奔主题: <template> <el-form ref="orderForm" :model="orderF ...

  2. element-ui表单验证(电话,邮箱)

    element-ui Form表单验证 最近刚好使用了element-ui的form表单,官网只提供的示例,这里把一些常用的验证记录下来,方便后期查找最终的效果是这样的, 这个表单里还加入了一下其他组 ...

  3. ElementUI表单验证攻略:解决表单项启用和禁用验证的切换,以及动态表单验证的综合性问题

    试想一种比较复杂的业务场景: 表格(el-table)的每一行数据的第一列是勾选框,最后一列是输入框.当某一行的勾选框勾上时,启用该行的输入框,并开启该行输入框的表单验证:取消该行的勾选框,则禁用该行 ...

  4. ElementUi 表单验证失败后 页面滚动到表单验证失败位置

    1.应用场景 当进行长表单验证时 用户填写到了单子的最下面 可是已经滚动过去的部分单子验证失败 为了友好的用户体验 这时候就需要滚动到验证失败位置 2.解决思路 elementUi本身并没有提供相关获 ...

  5. element-UI表单验证

    转载自: 一.简单逻辑验证(直接使用rules) 实现思路 •html中给el-form增加 :rules="rules"•html中在el-form-item 中增加属性 pro ...

  6. element-ui表单验证无效解决

    最近在项目中遇到了一个需求,需要动态增减表单元素,同时给新增的表单元素增加校验规则. element-ui官网给出了解决方案:点击新增按钮时,向循环渲染的数组中push新的对象,数据驱动视图,通过增加 ...

  7. 关于element-ui表单验证(自定义验证规则)

    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-widt ...

  8. Element-UI 表单验证规则rules 配置参数说明

    官方文档 : https://github.com/yiminghe/async-validator

  9. ElementUi rules表单验证

    ElementUi 表单验证 工作中常用到的JS验证 可以在pattern中书写正则,并且配合elementUI进行表单验证. pattern 属性规定用于验证输入字段的模式.模式指的是正则表达式. ...

随机推荐

  1. python元类:type和metaclass

    python元类:type和metaclass python中一切皆对象,所以类本身也是对象.类有创建对象的能力,那谁来创建类的呢?答案是type. 1.用tpye函数创建一个类 class A(ob ...

  2. ubuntu16.04 内核源码编译

    1)下载 首先看一下自己的内核版本 apt-cache search linux-source下载内核代码:sudo apt-get install linux-source-4.10.0 2)解压: ...

  3. Java String class methods

    Java String class methods 现在不推荐使用 StringTokenizer 类.建议使用 String 类的 split()方法或 regex(正则表达式). String c ...

  4. Java常用工具类之RegexpUtils,正则表达式工具类

    package com.test.core.util; import org.apache.log4j.Logger; import org.apache.oro.text.regex.Malform ...

  5. 分布式锁的理解,java自带的锁为什么会失效

    前段时间在发送短信的代码块上通过网上找的工具类基于Redis实现了分布式锁的功能 对应的链接https://www.cnblogs.com/c-h-y/p/9391602.html 周末想细细看一下. ...

  6. 洛谷——P1821 [USACO07FEB]银牛派对Silver Cow Party

    P1821 [USACO07FEB]银牛派对Silver Cow Party 题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...

  7. 深入理解javascript作用域系列第五篇

    前面的话 对于执行环境(execution context)和作用域(scope)并不容易区分,甚至很多人认为它们就是一回事,只是高程和犀牛书关于作用域的两种不同翻译而已.但实际上,它们并不相同,却相 ...

  8. FastReport.Net使用:[14]文本控件使用

    文本控件(Text)是FastReport中最常用的控件了,它可以是一行\多行文本.数据源的列.报表参数.汇总值.表达式,它还可以是以上任何元素的组合. 如何使用文本编辑器 1.双击文本框进入文本编辑 ...

  9. 【BZOJ 2806】 2806: [Ctsc2012]Cheat (SAM+二分+DP+单调队列)

    2806: [Ctsc2012]Cheat Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1262  Solved: 643 Description ...

  10. 【BZOJ 4596】 4596: [Shoi2016]黑暗前的幻想乡 (容斥原理+矩阵树定理)

    4596: [Shoi2016]黑暗前的幻想乡 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 324  Solved: 187 Description ...