• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    vue实现表单数据验证的实例代码

    代码如下:

    <!--登录表单区域-->
      <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 表单数据验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:docker私有仓库harbor搭建过程
    下一篇:详解宝塔Linux面板FTP无法连接的解决办法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    vue实现表单数据验证的实例代码 vue,实现,表单,数据,验证,