iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >vue如何实现表单数据验证
  • 528
分享到

vue如何实现表单数据验证

2024-04-02 19:04:59 528人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Vue如何实现表单数据验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现表单数据验证”吧!为el-fORM表单添加:rul

这篇文章主要讲解了“Vue如何实现表单数据验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现表单数据验证”吧!

  • 为el-fORM表单添加:rules

  • 在data中定义规则

  • 将定义的规则绑定在el-form-item

代码如下:

<!--登录表单区域-->
  <el-form :model="loginform" label-width="0px" class="login_form" :rules="loginformrules">
  <!--用户名-->
   <el-form-item prop="username">
    <el-input v-model="loginform.username" prefix-icon="el-icon-user"></el-input>
  </el-form-item>
  <!--密码-->
  <el-form-item prop="passWord">
    <el-input v-model="loginform.password" prefix-icon="el-icon-lock" type="password"></el-input>
  </el-form-item>
  <!--按钮区域-->
  <el-form-item class="btns">
    <el-button type="primary">登录</el-button>
    <el-button type="info">重置</el-button>
  </el-form-item>
  </el-form>
<script>
 export default{
 data(){
  return {
  //登录表单数据绑定对象
  loginform:{
   username:'',
   password:''
  },
  //表单验证规则
  loginformrules:{
   //验证用户名是否合法
   username:[
   { required: true, message: '请输入用户名', trigger: 'blur' },
   { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
   ],
   //验证密码是否合法
   password:[
   { required: true, message: '请输入密码', trigger: 'blur' },
   { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' }
   ]
  }
  }
 }
 }
</script>

ps:下面看下vue 自定义指令input表单的数据验证的代码

一、代码

<template>
  <div class="check" >
    <h3>{{msg}}</h3>
    <div class="input">
      <input type="text" v-input v-focus><span>{{msg1}}</span>
    </div>
    <div class="input">
      <input type="text" v-input v-required><span>{{msg2}}</span>
    </div>
    <div class="input">
      <!-- required:true/false 表示这个是必填项 -->
      <input type="text" v-input v-checked="{required:true,}"><span>{{msg3}}</span>
    </div>
    <div class="input">
      <!-- <input type="text" v-input v-validate="'required|email|phone|min(5)|max(15)|minlength(6)|maxlength(12)|regex(/^[0-9]*$/)'">
      required 验证是否是必填项
      email 验证是否是邮箱
      phone 验证是否是电话号码
      min(5) 验证最小值
      max(3) 验证最大值
      minlength(6) 验证最小长度
      maxlength(12) 验证最大长度
      regex(/^[0-9]*$/) 进行正则验证
      -->
      <input type="text" v-input
          v-validate="'required|min(5)|max(15)|minlength(6)|maxlength(12)|regex(/^[0-9]*$/)'" placeholder="多选验证">
    </div>
    <div class="input">
      <!--
      验证必须是数字:/^[0-9]*$/
      验证由26个英文字母组成的字符串:/^[a-za-z]+$/
      验证手机号: /^[1][3,4,5,7,8][0-9]{9}$/;
      验证邮箱:/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
      -->
      <input type="text" v-input v-validate="'required|phone'" placeholder="验证手机号码">
    </div>
    <div class="input">
      <input type="text" v-input v-validate="'required|email'" placeholder="验证邮箱">
    </div>
  </div>
</template>

<script>
  export default {
    name: 'check',
    data() {
      return {
        msg: '指令',
        tipsbordercolor: 'red',
        msg1: '最简单的指令',
        msg2: '验证不能为空的指令',
        msg3: '进行正则验证',
        tipsmsg: '',
      }
    },

    directives: {
      // 修饰input框的指令
      input: {
        // 当被绑定的元素插入到dom上的时候
        inserted: function (el) {
          el.style.width = "300px";
          el.style.height = "35px";
          el.style.lineheight = "35px";
          el.style.background = "#DDD";
          el.style.fontsize = "16px";
          el.style.border = "1px solid #eee";
          el.style.textindent = "5px";
          el.style.textindent = "8px";
          el.style.borderradius = "5px";
        }
      },
      // input框默认选中的指令
      focus: {
        inserted: function (el) {
          el.focus();
        }
      },
      // 不能为空的指令
      required: {
        inserted: function (el) {
          el.addeventlistener('blur', function () {
            if (el.value == '' || el.value == null) {
              el.style.border = "1px solid red";
              console.log('我不能为空');
            }

          })
        }
      },
      // 验证指令
      checked: {
        inserted: function (el) {
          return el
        }
      },
      // 验证
      validate: {
        inserted: function (el, validatestr) {
          // 将验证规则拆分为验证数组
          let validaterulearr = validatestr.value.split("|");
          // 监听失去焦点的时候
          el.addeventlistener('blur', function () {
            //失去焦点进行验证
            checkedfun();
          });

          // 循环进行验证
          function checkedfun() {
            for (var i = 0; i < validaterulearr.length; ++i) {
              let requiredregex = /^required$/; // 判断设置了required
              let emailregex = /^email$/; // 判断设置了email
              let phoneregex = /^phone$/; // 判断设置了 phone
              let minregex = /min\(/; //判断设置了min 最小值
              let maxregex = /max\(/; //判断设置了max 最大值
              let minlengthregex = /minlength\(/; //判断设置了 minlength 最大长度
              let maxlengthregex = /maxlength\(/; //判断设置了 maxlength 最大长度
              let regexregex = /regex\(/;
              // 判断设置了required
              if (requiredregex.test(validaterulearr[i])) {
                if (!required()) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断设置了email
              if (emailregex.test(validaterulearr[i])) {
                if (!email()) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断设置了 phone
              if (phoneregex.test(validaterulearr[i])) {
                if (!phone()) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断是否设置了最小值
              if (minregex.test(validaterulearr[i])) {
                if (!eval(validaterulearr[i])) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断是否设置了最大值
              if (maxregex.test(validaterulearr[i])) {
                if (!eval(validaterulearr[i])) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断设置了最小长度
              if (minlengthregex.test(validaterulearr[i])) {
                if (!eval(validaterulearr[i])) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断设置了最大长度
              if (maxlengthregex.test(validaterulearr[i])) {
                if (!eval(validaterulearr[i])) {
                  break;
                } else {
                  removetips();
                }

              }

              // 判断测试正则表达式
              if (regexregex.test(validaterulearr[i])) {
                if (!eval(validaterulearr[i])) {
                  break;
                } else {
                  removetips();
                }

              }

            }

          }

          // 验证是否是必填项
          function required() {
            if (el.value == '' || el.value == null) {
              // console.log("不能为空");
              tipmsg("不能为空");
              return false;
            }

            return true;
          }

          // 验证是否是邮箱
          function email() {
            let emailrule = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
            if (!emailrule.test(el.value)) {
              tipmsg("请输入正确的邮箱地址");
              return false;
            }

            return true;
          }

          // 验证是否是手机号码
          function phone() {
            let phonerule = /^[1][3,4,5,7,8][0-9]{9}$/;
            if (!phonerule.test(el.value)) {
              tipmsg("请输入正确的手机号码");
              return false;
            }

            return true;
          }

          // 最小值验证
          function min(num) {
            if (el.value < num) {
              tipmsg("最小值不能小于" + num);
              //console.log('最小值不能小于'+num);
              return false;
            }

            return true;
          }

          // 最大值验证
          function max(num) {
            if (el.value > num) {
              tipmsg("最大值不能大于" + num);
              //console.log('最大值不能大于'+num);
              return false;
            }

            return true;
          }

          // 最小长度验证
          function minlength(length) {
            if (el.value.length < length) {
              //console.log('最小长度不能小于'+length);
              tipmsg("最小长度不能小于" + length);
              return false;
            }

            return true;
          }

          // 最大长度进行验证
          function maxlength(length) {
            if (el.value.length > length) {
              //console.log('最大长度不能大于'+length);
              tipmsg("最大长度不能大于" + length);
              return false;
            }
            return true;
          }

          // 进行正则表达式的验证
          function regex(rules) {
            if (!rules.test(el.value)) {
              tipmsg("请输入正确的格式");
              return false;
            }
            return true;
          }

          // 添加提示信息
          function tipmsg(msg) {
            removetips();
            let tipsdiv = document.createelement('div');
            let curdate = date.parse(new date());
            tipsdiv.innertext = msg;
            tipsdiv.classname = "tipsdiv";
            tipsdiv.id = curdate;
            tipsdiv.style.position = "absolute";
            tipsdiv.style.top = el.offsettop + 45 + 'px';
            tipsdiv.style.left = el.offsetleft + 'px';
            document.body.appendchild(tipsdiv);
            //settimeout(function(){
            // document.getelementbyid(curdate).remove();
            //},2000);
          }

          // 移除提示信息
          function removetips() {
            if (document.getelementsbyclassname('tipsdiv')[0]) {
              document.getelementsbyclassname('tipsdiv')[0].remove();
            }

          }
        },
      }
    }
  }
</script>

<style>

  .input {
    padding-bottom: 20px;
    float: left;
    clear: both;
    margin-left: 500px;
    display: block;

  }

  .check input {
    width: 300px;
    height: 35px;
    outline: none;
    background: #ddd;
  }

  .check span {
    padding-left: 20px;
  }

  .tipsdiv {
    height: 27px;
    line-height: 25px;
    border: 1px solid #333;
    background: #333;
    padding: 0px 5px;
    border-radius: 4px;
    color: #fff;
    font-size: 16px;
  }

  .tipsdiv:before {
    content: '';
    display: block;
    border-width: 0 5px 8px;
    border-style: solid;
    border-color: transparent transparent #000;
    position: absolute;
    top: -9px;
    left: 6px;
  }
</style>

感谢各位的阅读,以上就是“vue如何实现表单数据验证”的内容了,经过本文的学习后,相信大家对vue如何实现表单数据验证这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: vue如何实现表单数据验证

本文链接: https://www.lsjlt.com/news/95891.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue如何实现表单数据验证
    这篇文章主要讲解了“vue如何实现表单数据验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现表单数据验证”吧!为el-form表单添加:rul...
    99+
    2024-04-02
  • Vue from-validate如何实现表单验证
    这篇文章给大家分享的是有关Vue from-validate如何实现表单验证的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。知识准备vue的自定义指令具体可以看官方手册,连接如下:...
    99+
    2024-04-02
  • vue+vue-validator如何实现表单验证功能
    这篇文章主要为大家展示了“vue+vue-validator如何实现表单验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue+vue-validator...
    99+
    2024-04-02
  • vue实现表单验证功能
    本篇主要讲述如何基于NUXT的validate方法实现表单的验证。 将验证方法封装后,使用的时候只需像:rules="filter_rules({required:true,type...
    99+
    2024-04-02
  • layui如何实现表单验证
    这篇文章主要介绍layui如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在网上看到很多validform和layer配合的验证方式,但是觉得写的不好,不清不楚的,于是...
    99+
    2024-04-02
  • 如何实现JS表单验证
    这篇文章主要介绍了如何实现JS表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先晒图index.html<!DOCTYPE&nb...
    99+
    2024-04-02
  • html5如何实现表单验证
    这篇文章主要介绍html5如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,...
    99+
    2024-04-02
  • jQuery如何实现表单验证
    这篇文章主要为大家展示了“jQuery如何实现表单验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现表单验证”这篇文章吧。具体代码如下所示:...
    99+
    2024-04-02
  • vue实现表单验证小功能
    本文实例为大家分享了vue实现表单验证的具体代码,供大家参考,具体内容如下 1.路由跳转 先点开Vue项目中src目录配置router文件然后用import暴露你的表单页名称并在你的...
    99+
    2024-04-02
  • Javascript中如何实现表单验证
    本篇文章为大家展示了Javascript中如何实现表单验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 检查一段字符串是否全由数字组成: ﹤ scr...
    99+
    2024-04-02
  • 如何用JavaScript实现表单验证
    这篇“如何用JavaScript实现表单验证”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用JavaScript实现表单...
    99+
    2023-06-30
  • vue 如何实现表单校验
    一、安装并使用 首先,在你的vue项目中进行安装: npm install --save vue-input-check 安装完成以后引入并注册: import in...
    99+
    2024-04-02
  • JavaScript 表单数据验证
    JavaScript 表单HTML 表单验证可以通过 JavaScript 来完成。HTML 表单验证也可以通过浏览器来自动完成。如果表单字段 (fname) 的值为空, required 属性会阻止表单提交:。。。。。。数据验证:数据验证...
    99+
    2023-06-03
  • 策略模式如何实现Vue动态表单验证
    这篇文章将为大家详细讲解有关策略模式如何实现Vue动态表单验证,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。策略模式(Strategy Pattern)又称政策模式,其定...
    99+
    2024-04-02
  • vue+vue validator怎么实现表单验证功能
    今天小编给大家分享一下vue+vue validator怎么实现表单验证功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所...
    99+
    2024-04-02
  • vue表单验证rules及validator验证器如何使用
    这篇文章主要介绍“vue表单验证rules及validator验证器如何使用”,在日常操作中,相信很多人在vue表单验证rules及validator验证器如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-02
  • Angular8如何实现表单及其验证
    小编给大家分享一下Angular8如何实现表单及其验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正文(一)、新建表单(模板表...
    99+
    2024-04-02
  • jQuery实现表单验证
    使用jQuery实现表单验证,供大家参考,具体内容如下 register.html <!DOCTYPE html> <html lang="en"> &l...
    99+
    2024-04-02
  • Ajax如何实现表单验证功能
    本篇内容主要讲解“Ajax如何实现表单验证功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax如何实现表单验证功能”吧! 兼...
    99+
    2024-04-02
  • 如何使用JavaScript实现表单验证
    本篇内容介绍了“如何使用JavaScript实现表单验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作