vue如何制作自定义表单校验样式

17 篇文章 1 订阅
1 篇文章 0 订阅

vue如何制作自定义表单校验样式

先上效果图
在这里插入图片描述
由于vue的优越性,所以衍生出很多与之匹配并非常受欢迎的ui组件库,比如最常见的element-ui和antvue,两者内容几乎相同,样式略有差异,所以在制作一款后台管理系统的时候,表单与表格非常重要,对于表单的验证,出于开发效率的原因上我们通常会直接引用这些组件库中的内容,对于这些封装好的组件我们可以通过穿透(深层)样式或是定制样式的方法去修改,但对于一些个性化较强的样式,这样的修改显然很费劲,所以对于这些例如登录/注册或是其他类个性化较强的表单,我们可以自定义去制作

下面说思路,其实JavaScript中关于表单验证的正则表达式有很多很多,各种各样组合的形式校验都有,这里我只给大家列举一些比较常见的校验规则

/*用户名要求 数字、字母、下划线的组合,其中数字和字母必须同时存在*/
/^(?![^A-Za-z]+$)(?![^0-9]+$)[0-9A-Za-z_]{6,12}$/
/* 手机号 13开头、15开头(154除外)、180、186~189开头的*/
/^(13\d|15[0-3]|15[4-9]|180|18[6-9])\d{8}$/
/*密码:8-12位,由字母数字下划线组成 */
 /^[\w]{8,12}$/
/* 身份证号 */
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/
/* 邮箱 */
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.\w+)+$/

有了这些校验规则后,我们明确一个事情,我们通常看到的校验规则下面的错误提示文字,例如
在这里插入图片描述

通常是我们点击输入框外面的时候它才会蹦出这个错误提示,所以我们要监听输入框失去焦点时候触发的事件 @blur(v-on:blur),也就是当光标移除输入框时会触发的事件,所以现在思路清晰了

上代码

<input type="text" placeholder="用户名需由字母数字下划线组成" v-model="regaccount" @blur="AccBlurOn" />

首先我们要在data中声明输入框双向绑定的数据(v-model),这里是regaccount,之后监听输入框失去焦点的事件
,之后我们还要书写错误提示的文本框

<span v-if="regaccountDis1">用户名不能为空</span>
<span v-if="regaccountDis2">用户名格式不正确</span>

这里使用v-if是因为虽然v-if具有更好的切换开销,但不会占取页面位置,并且在这个页面当中,需要的切换也并不是很多
同样两个v-if绑定的布尔值变量声明为false,即不创建该实例

之后我们在上方监听输入框失去焦点的方法中写入如下代码

AccBlurOn () {
      const AccReg = /^(?![^A-Za-z]+$)(?![^0-9]+$)[0-9A-Za-z_]{6,12}$/
      if (this.regaccount === '') {
        this.regaccountDis1 = true
      } else {
        this.regaccountDis1 = false
        if (!AccReg.test(this.regaccount)) {
          this.regaccountDis2 = true
        } else {
          this.regaccountDis2 = false
        }
      }
    }

第一句是声明校验规则,第二个if判断中的.test()方法是JavaScript中用来匹配字符串规则的方法

这样这个简单的校验就完成了,后面的几个校验原理相同

希望这篇文章可以帮助到你

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值