elementUI表单验证非常方便,我们直奔主题:

<template>
<el-form ref="orderForm" :model="orderForm" :rules="addRules" label-width="100px">
<el-form-item label="联系人:" prop="contact">
<el-input v-model="orderForm.contact" type="text" placeholder="请输入联系人名称"></el-input>
</el-form-item>
<el-form-item label="联系电话:" prop="phone">
<el-input v-model="orderForm.phone" type="text" placeholder="请输入联系电话"></el-input>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
let validateContact = (rules, value, callback) => {
if (value === '') {
callback(new Error('请输入联系人姓名'));
} else {
// 中文或英文、数字正则
let regExpr = /^[a-zA-Z0-9 \u4e00-\u9fa5]+$/;
if(!regExpr.test(value)){
callback(new Error('联系人输入不正确'));
} else if(value && value.trim().length>30) {
callback(new Error('长度超出限制'));
} else {
this.correct = true; // 标记contact是否校验通过
callback();
}
}
};
let validPhone = (rules, value, callback) => {
if (value === '') {
callback(new Error('请输入手机号'));
} else {
if(value){
value = value.trim();
}
let TEL_REGEXP = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
if(TEL_REGEXP.test(value)) {
callback(new Error('手机号格式不正确'));
} else {
this.phoneCorrect = true; // 标记手机号码校验正确
callback();
}
}
};
return {
orderForm: {
contact: "",
phone: "",
},
addRules: {
contact: [{ required: true, validator: validateContact, trigger: 'blur'}],
phone: [{required: true, validator: validPhone, trigger: 'blur'}],
},
correct: false, // 校验是否正确
phoneCorrect: false, // 校验手机号码是否正确
}
}
}
</script>

1、验证表单中的某个字段:

// 验证contact字段
this.$refs.orderForm.validateField("contact", () => {
console.log(this.correct);
});
// 验证phone字段
this.$refs.orderForm.validateField("phone", () => {
console.log(this.phoneCorrect);
});

2、验证整个表单:(在提交订单前验证)

this.$refs.orderForm.validate(function (valid){
if(valid){
// TO DO
}
});

3、表单重置:

this.$refs.orderForm.resetFields();

elementUI表单验证的更多相关文章

  1. ElementUI表单验证使用

    1.设计校验方式: 我们表单验证的rules一般封装一个单独的js文件,比如我之前写的这个博客: ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证 可以修改下:公共的校验 ...

  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. iptables 配置 场景1

    这样配置完成后,没法完成本地回环,需要对lo网卡进行配置 本地报文无法发出,继续添加规则

  2. 初始化html font-size

    (function () { var docEl = document.documentElement, resizeEvt = 'orientationchange' in window ? 'or ...

  3. append()、appendChild() 和 innerHTML 的区别

    概念和区别:append() 可以同时传入多个节点或字符串,没有返回值: 据说 append 还是试用期的方法,有兼容问题,(但我用了暂时火狐,谷歌,iE都能使用). https://develope ...

  4. java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)

    报错: java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Meth ...

  5. 全面系统Python3入门+进阶-1-7 课程内容与特点

    结束

  6. response.getWriter().write的用法

    /** * 获取手机验证码的方法 */ var loopObjBindMobil = null; var secondsBindMobil = 0; function hqBindYzm(moblie ...

  7. Flink 异步IO访问外部数据(mysql篇)

    接上篇:[翻译]Flink 异步I / O访问外部数据 最近看了大佬的博客,突然想起Async I/O方式是Blink 推给社区的一大重要功能,可以使用异步的方式获取外部数据,想着自己实现以下,项目上 ...

  8. Java连接MongoDB报错“java.lang.IllegalArgumentException: clusterListener can not be null”的解决办法

    我使用的MongoDB版本是3.6.9. 下面是一个很基础的示例代码,功能就是连接MongoDB: package com.zifeiy.snowflake.handle.etl.mongodb; i ...

  9. 【嵌入式硬件Esp32】ESP32使用visual studio cod界面

     如何下载安装IDE Visual Studio Code大家可以在微软的官网上根据自身的开发平台下载,至于安装方法就是无脑式地按Next就好了,下载地址如下所示: Visual Studio Cod ...

  10. golang实现无限级菜单(beego框架下)

    原文地址  http://www.niu12.com/article/37 golang实现无限级菜单(beego框架下) 数据表如下 -- ---------------------------- ...