范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Vue实战084自定义表单校验规则及常用表单校验分享

  表单校验是注册环节中必不可少的操作,表单校验可以提醒用户填写数据规则以确保用户提交数据的效性,也可以防止用户因误操作、填写错误数据或者恶意提交数据而占用服务器资源。
  ElementUI校验规则
  ElementUI封装了组件el-form来收集、校验和提交数据,其中的rules属性就是用来做数据校验的。ElementUI提供了一些常用的表单验证规则,我们可以直接使用该规则来实现数据校验。rules根据rules给出的规则会对prop中的值进行校验,当不满足要求时会弹出message相应的提示信息。
  自定义规则调用
  但是ElementUI提供的表单验证规则是有限的,可能无法满足我们项目的需求这时候就需要我们来自定义验证规则。我们在在data() {}中添加自定义的校验规则,然后在在data的return中通过validator引用校验规则。data() {return{}}中定义的rules要  中的 :rules 属性值相同,rules中的对象userName要与与 中的prop属性值相同。
  自定义校验规则
  validate是ElementUI封装用于对整个表单进行验证的,参数是一个回调函数。该回调函数在校验结束后被调用,是否校验成功和未通过校验的字段。这个回调函数的原型为:function fun(rule, value, callback, source, options){},其中rule指向当前的规则对象,value是需要进行校验的值,callback是验证之后的执行回调,source是跟value的值一致的键值对象(可以忽略),options是个额外的配置选项(可选)。所以常见的函数定义如下,校验手机号码是否正确。
  validate校验
  自定义校验方法是一个在校验结束后才会被调用回调函数,所以在提交表单的时候我们需要通过$refs来调用validate来继续自定义校验。自定义校验规则时必须保证每个分支都调用了callback方法,否则会导致el-form组件在使用validate方法时无法进入回调函数。调用validate()校验时需要prop属性绑定校验的字段名,否则无法校验v-model中绑定的值。
  常用校验规则
  为了方便我们还是定义一个validation.js文件来专门定义常用的校验方法,具体的JS文件定义和引用方法可以参考文章【Vue实战083:几种常用的外部JS文件定义和引用方法详解 】。这里注意自定义rules时外层的message高于callback中的错误提示,所以自定义规则时建议外层勿定义message,可以用两个规则来校验内容。定义好之后在需要用到的地方直接 import 引入,然后在 rules 校验中加入即可。
  总结:
  以上内容是小编给大家分享的【Vue实战084:自定义表单校验规则及常用表单校验分享】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。更多Vue实战技巧可以参考以下专栏:
  为了方便学习,下面附上本文用到的源码://template                    //JavaScript->data()return: rules: {   username: [     { required: true, message: "请输入用户名", trigger: "blur" },     { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },   ] } //JavaScript data () {   const chackLen = (rule, value, callback) => {    let len = value.length    if ( len < 3 || len > 5) {     callback(new Error("用户名长度在3-5之间"))    } else {     callback()   }  } return{   rules: {    username: [     { required: true, message: "请输入用户名", trigger: "blur" },     { validator: chackLen, trigger: "blur" }  // 自定义长度校验    ]   }  },  methods: {     onSubmit() {         this.$refs["rulesForm"].validate(valid => {             if (valid) {                 //如果校验为真说明符合要求可以继续             }else{                //反正说明校验失败,返回对应的message             }         });     }, } }  let matching = (value, callback, reg, message) => {   if (value === "" || value === undefined || value == null) {     callback(new Error(message))   } else {     if (!reg.test(value)) {       callback(new Error(message))     } else {       callback()     }   } } module.exports = {   Username (rule, value, callback) {     let reg = /^(?![0-9]*$)(?![a-zA-Z]*$)[a-zA-Z0-9]{6,12}$/     matching(value, callback, reg, "请输入6-12位字母和数字组合")   },   SimplePwd (rule, value, callback) {     let reg = /^[_a-zA-Z0-9]+$/     matching(value, callback, reg, "包含英文字母、数字及下划线组成")   },   ComplexPwd (rule, value, callback) {     let reg = /^(?![d]+$)(?![a-zA-Z]+$)(?![^da-zA-Z]+$)([^一-龥s]){8,20}$/     matching(value, callback, reg, "请输入8-20位英文字母、数字或者符号")   },   Phone (rule, value, callback) {     let reg = /^[1][3, 4, 5, 6, 7, 8][0-9]{9}$/     matching(value, callback, reg, "请输入正确的手机")   },   Email (rule, value, callback) {     let reg = /^([a-zA-Z0-9]+[-_.]?)+@[a-zA-Z0-9]+.[a-z]+$/     matching(value, callback, reg, "输入正确的邮箱")   },   IdCard (rule, value, callback) {     let reg = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/     matching(value, callback, reg, "输入正确的身份证号码")   },   Company (rule, value, callback) {     let reg = /^[A-Z0-9]{8}-[A-Z0-9]$|^[A-Z0-9]{8}-[A-Z0-9]-[0-9]{2}$/     matching(value, callback, reg, "请输入正确的营业执照")   },   Weixin (rule, value, callback) {     let reg = /^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/     matching(value, callback, reg, "请输入正确的微信号")   },   Integer (rule, value, callback) {     let reg = /^[1-9][0-9]*$/     matching(value, callback, reg, "请输入正确的整数")   },   Number (rule, value, callback) {     let reg = /^d+$|^d+[.]?d+$/     matching(value, callback, reg, "请输入纯数字")   },   Landline (rule, value, callback) {     let reg = /^(d{3,4}-)?d{7,8}$/     matching(value, callback, reg, "请输入正确的座机")   },   Ip (rule, value, callback) {     let reg = /^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$/     matching(value, callback, reg, "请输入正确的IP")   },  Price (rule, value, callback) {     let reg = /^-?d{1,4}(?:.d{1,2})?$ /     matching(value, callback, reg, "请输入正确的价格")   },   BankCard (rule, value, callback) {     let reg = /^([1-9]{1})(d{14}|d{18})$/     matching(value, callback, reg, "请输入正确的银行卡")   } }

你有没有亲自拍到过特别喜欢可以做壁纸的照片,能分享一下吗?谢谢邀请,很高兴参与这个话题。(以下图片是本人索尼黑卡数码机拍摄)爱好旅行,很多时候是用眼睛去看,用心灵去感悟。虽说是带着相机,但由于拍摄技术有限。也仅仅是到此一游的水平。尽管如此侄女年前去医院检查左耳中度听损,配助听器有没有必要呢?五官科医院回答才正确。谢谢。左耳已经是中度的听力损失,那是肯定需要及早选配的,佩戴助听器应该在还有残余听力的情况下选配,而且越早选配,越不容易导致由于长时间没有声音来源的刺激而引起5G将至,还有必要换4G手机吗?目前5G的具体时间表还有很大的不确定性。虽然此前宣传2019年各大运营商就会展开5G网络测试,但这项测试是安排在上半年还是下半年都没准。而在小范围的测试之后,大规模的正式商用恐怕还哪些机器人动画对你影响最为深刻?如果要论情怀的话我花了最多功夫钻研的是00,最为剧情扼腕叹息的是Z,而个人觉得艺术价值最高的是堪称黄金年代遗产巅峰的TurnA。即是说对于这个问题,我有很多理由可以在已经是滚瓜烂熟永劫无间,的确费电!12400配B660RTX3060Ti功耗实测相信大家如今都将12代i5处理器奉为玩家之选,综合素质最高最具甜品潜力的i51240处理器和与之匹配的B660主板的组合可谓香车宝马了。今天咱们就用这套主流再配上微星RTX3060u盘引导安装系统u盘引导安装系统,我直接跳过系统u盘的制作,我们需要设置我们的电脑的bios因为我使用的是这个虚拟机啊所以的话设置越有跟大家实际操作有点不一样当然哈都是大同小异首先的话再开机的那一你们觉得同价位的手机,你们会选苹果华为,还是小米?iPhone华为小米三个品牌都是非常优秀的手机。这三个品牌都有相当大的受众群体,从选择理由来说,同价位的手机会如何选择?这是很多换机朋友的心声。苹果的最低价位都4900了,小米手机现在什么牌子的冰箱质量最好?关于哪个牌子的冰箱质量好,我们可以参考权威机构发布的排行榜,毕竟综合了口碑质量销量以及售后等多个维度,因而具备一定的参考价值!第一,海尔。创立于1984年,是全球知名的整套家电解决戴了助听器,听得见但是听不懂该怎么办?首先,助听器只是一种对听力进行补偿的辅助电子产品,它不能替代我们的真耳,也不能替代我们的大脑处理语言功能,所以言语分辨率差的用户戴上助听器以后也是听得见听不懂如果听不清可以更换性能两块钱之内。赠送什么东西给女生不感觉low,感觉还可以不错?大夏天带她去法国巴黎埃菲尔铁塔,在她最热的时候,递给她一瓶国内一块七买的农夫山泉。我觉得你可以给她买注彩票,就说送她一个梦想,至于能不能梦想成真,就得看她自己的本事了机智机智机智带创业至今最让你印象深刻的客户说的一句话是什么?客户就是上帝,我不赞同。应该是客户是生产的共同体创业一年多,听到客户常说的话是现在做企业不容易,你下海是自讨苦吃呀!的确,创业这一年来,我真实地体会到做企业的不容易。资金,团队客户
万物皆可充,数据线界的瑞士军刀!六合一组合,苹果啥的都弱爆了你是否经历过以下烦恼早上出门过于匆忙,数据线遗忘在家里,想要充电的时候没有数据线线太长经常和别的线缠在一起乱成一团,要从一堆凌乱的线中准确找出一根太麻烦出门需要准备N条不同接口的数惊艳全澳洲的校园女神1年甩肉120斤,用瑜伽弹力带开胸美背瘦手臂减重100斤是一种什么体验呢?这个问题16岁的澳洲女孩JosieDesgrand必须谢邀。因为她在一年时间之内,竟减掉了120斤的脂肪!对此她说,爽就一个字!原来她的后背布满赘肉,为啥一定要做折扣?这有2个理由现在美团外卖的店铺进去后,会看到每个菜品价格下面都有一个到手预估。,平台也会主动计算选择满减和折扣两种计算方式中的最优方式。有的商家会有疑问,几乎同样的优惠力度,我只设置满减或者折汽车三包新规来了,涉及5项权益4项监管3项保障近年来,汽车技术不断发展,整个汽车行业也迎来了革新,新能源汽车作为热门关键词,屡屡出现在各大版面热搜榜。一些发布时间较早的汽车政策规定并不完全适用于当下的环境,比如2013年施行的煤炭资源股大跌,周期股的春天结束了A股今日再度迎来黑色星期四,三大股指全线下跌,煤炭石油等资源类周期全线走弱,拖累指数持续下跌,成交量再度突破万亿关口,市场赚钱效应极差,个股跌多涨少,四季度的寒冬情绪似乎已经在资本社群运营13个原则提升社群营销稳定性作者小蚱蜢简介8年互联网营销实战经验,乐于为大家分享实战经验。寻找互联网营销同行交流经验提升自我!1运营专业或特色的群,召集的人要有一定资质经过小蚱蜢运营社群案例以特色的群比较稳定江西人第一次去重庆吃宴席,20道菜,随礼300块,你觉得值吗?重庆,乡村宴席,20道菜桌子都摆不下,成本450,随礼20块都可以重庆同事结婚,邀请张欣去参加宴席,张鑫江西南昌人,重庆太远,虽然张鑫很想去但一直都没有找到机会,这次同事的邀请让张厦门小学女老师晒食堂饭菜走红,1元四菜一汤,网友真羡慕厦门小学女老师晒食堂伙食,1元随便吃,评论区火了,网友羡慕今天是个特殊的日子,2021年下半年教师资格证考试今天上午正式开始,据说报名参考人数超过600万。这么多人报考,让教资考试四川人第一次去杭州旅游,点了份毛血旺,绝望到心痛黄绿色毛血旺?四川人去杭州旅游,点了份毛血旺,却一口都吃不下四川人张敏第一次去浙江杭州旅游,四川距离杭州还是非常远的,将近1800多公里,一个在东边一个在西边,张敏虽然很久之前都想家居美学新时尚,一台冰箱点亮家居幸福感都说一个人的家庭装修风格会暴露了你的内心,那么简洁明了的风格就是与自己和解。每天各种工作都耗费着我们大量的精力,繁杂的事务又占用我们大量的时间,在大量无用的物质和信息的冲击下,想要从2020年7月1日起,南通火车站到上海虹桥和上海站的动车时刻表从2020年7月1日起,南通火车站到上海虹桥火车站的动车发车了!以下是火车时刻表南通站始发南通站到上海虹桥站C3702C3704C3706C3708C3710C3712C3714C