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. bzoj 1112 treap树

    思路:我们只要check一遍每个长度为k的区间就好啦,对于一个区间来说的最优值显然是中位数,我们显然要动态求 第k大,所以需要一个二叉搜索树,用treap就好啦. #include<bits/s ...

  2. 利用linux判断elf文件是64位还是32位

    readelf 命令,参数为-h 例如 文件名为python >>>readelf -h python 得到的是ELF Header中的项Magic 第五个数 02时为64位,01时 ...

  3. zTree通过指定ID找到节点并选中

    zTree = $.fn.zTree.getZTreeObj("treeDemo");//treeDemo界面中加载ztree的div var node = zTree.getNo ...

  4. FastReport.Net使用:[2]添加MSSQL数据源一

    如何使用MSSQL表作为数据源 1.点击FastReport设计器中Data->Add Data Source菜单项,打开数据源添加向导. 2.添加新的数据连接. 点击 New connecti ...

  5. ddms 安卓录制

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 屏幕录制, 视频录制 保存为 .   打开 .显示在浏览器里. 设备屏幕捕捉     刷 ...

  6. BZOJ1552/3506 [Cerc2007]robotic sort

    Splay 与之前不同的是如果你仅仅是翻转左右区间的话可以在find里面做因为对他有影响的子树在做之前一定在他的上面从上到下搜索的过程可以把rever做了. 但这道题要求我们输出转换之前的,因此不能保 ...

  7. 如何解决The underlying provider failed on Open问题

    转自codeproject,找了半天解决办法,这个最靠谱. 我数据库用的EF做ORM,在vs里面测试的时候不会出现这个错误,用IIS就出错了.解决方法如下 Solution for "The ...

  8. mysql 存储过程案列一个。

    -- 设置分隔符 DELIMITER // /*初始化*/ DROP PROCEDURE IF EXISTS useCursor // /*建立 存储过程 create */ CREATE PROCE ...

  9. UIColor和 同 CIColor 与 CGColor 之间的联系、转换

    1. 利用UIColor展现 #F6F6F6 这个传统的颜色 #F6F6F6 为一个 16 进制表示的RPG颜色,所以,需要先转换成 10进制,其中 F6 - 240,F6 -  240 ,F6 - ...

  10. Altium Protel PCB Layer

    The layers themselves are grouped by their functional types: Signal Layers – Top Layer, Bottom Layer ...