vue使用element-ui实现表单验证


Posted in Vue.js onDecember 13, 2020

本文实例为大家分享了vue使用element-ui实现表单验证的具体代码,供大家参考,具体内容如下

一、简单逻辑验证(直接使用rules)

实现思路

  • html中给el-form增加:rules="rules"
  • html中在el-form-item 中增加属性prop="名称"
  • js中直接在data中定义rules:{}

html部分

<el-form ref="form" :rules="rules" :model="form" label-width="300px">
  <el-form-item label="发货地址:" prop="fAdderss">
   <el-input class="inp" v-model="form.fAdderss" auto-complete="true"></el-input>
   <el-button type="primary" class="btn-add" @click="onSubmit">常用地址</el-button>
  </el-form-item>
</el-form>

js部分

<script>
export default {
 data() {
 return {
  form: {
  fAdderss: '',
  },
  // 校验规则
  rules: {
  fAdderss: [
  { required: true, //是否必填
   message: '地址不能为空', //规则
   trigger: 'blur' //何事件触发
  },
  //可以设置双重验证标准
  { min: 3, max: 5, message: '长度在 3 到 5 个字符', }
  ]
  }
 }
 }
}
</script>

二、自定义验证逻辑

实现思路

  • html中给el-form增加:rules="rules"
  • html中在el-form-item 中增加属性prop="名称"
  • js中直接在data中在rules中的名称对应中设置validator: 验证器名称,
  • js中在data中 return之上书写验证器对应的js验证逻辑

html部分

<el-form ref="form" :rules="rules" :model="form" label-width="300px"> 
  <el-form-item label="发货人电话" prop="phone">
   <el-input class="inp" v-model="form.phone" auto-complete="true"></el-input>
  </el-form-item>
 </el-form>

js部分

<script>
export default {
 data() {
 // 此处自定义校验手机号码js逻辑
 var phoneReg = /^[1][3,4,5,7,8][0-9]{9}$/
 var validatePhone = (rule, value, callback) => {
  if (!value) {
  return callback(new Error('号码不能为空!!'))
  }
  setTimeout(() => {
  if (!phoneReg.test(value)) {
   callback(new Error('格式有误'))
  } else {
   callback()
  }
  }, 1000)
 }
 return {
  form: { 
  phone: '',
  },
  // 校验规则
  rules: {
  // 校验手机号码,主要通过validator来指定验证器名称
  phone: [{ required: true, validator: validatePhone, trigger: 'blur' }]
  },
 }
 }
}
</script>

效果图如下

vue使用element-ui实现表单验证

三、表单提交

实现思路

  • html中给el-form增加ref="form" :model="ruleForm"
  • html中给提交按钮增加点击事件@click="submitForm('ruleForm')"()中对应的为form的:model="ruleForm"
  • js中直接在methods中定义提交事件submitForm(){}

+html部分

//form
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="0px" >
//表单项
 <el-form-item label="发货人电话" prop="phone">
   <el-input class="inp" v-model="form.phone" auto-complete="true"></el-input>
 </el-form-item>、
 ...
 //提交按钮
 <el-button class="btn-login" type="primary" size="medium" @click="submitForm('ruleForm')">立即登录</el-button>    
</el-form>

js部分

methods: {
 submitForm(formName) {
  this.$refs[formName].validate(valid => {
  if (valid) {
    //如果通过验证 to do...
  } else {
   console.log('error submit!!')
   return false
  }
  })
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
详解Vue的options
May 15 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
vue+element实现动态加载表单
Dec 13 #Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 #Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 #Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 #Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 #Vue.js
vue使用exif获取图片经纬度的示例代码
Dec 11 #Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 #Vue.js
You might like
在Windows版的PHP中使用ADO
2006/10/09 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
Javascript 二维数组
2009/11/26 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
Python2中的raw_input() 与 input()
2015/06/12 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python单例模式的两种实现方法
2017/08/14 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
超市促销活动总结
2014/07/01 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2014年业务工作总结
2014/11/17 职场文书