vue表单自定义校验规则介绍


Posted in Javascript onAugust 28, 2018

如下所示:

<div id="app">
<el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm">
 <el-form-item label="密码" prop="pass">
  <el-input type="password" v-model="ruleForm2.pass" auto-complete="off"></el-input>
 </el-form-item>
 <el-form-item label="确认密码" prop="checkPass">
  <el-input type="password" v-model="ruleForm2.checkPass" auto-complete="off"></el-input>
 </el-form-item>
 <el-form-item label="年龄" prop="age">
  <el-input v-model.number="ruleForm2.age"></el-input>
 </el-form-item>
 <el-form-item>
  <el-button type="primary" @click="submitForm('ruleForm2')">提交</el-button>
  <el-button @click="resetForm('ruleForm2')">重置</el-button>
 </el-form-item>
</el-form>
</div>
var Main = {
  data() {
   var checkAge = (rule, value, callback) => {
    if (!value) {
     return callback(new Error('年龄不能为空'));
    }
    setTimeout(() => {
     if (!Number.isInteger(value)) {
      callback(new Error('请输入数字值'));
     } else {
      if (value < 18) {
       callback(new Error('必须年满18岁'));
      } else {
       callback();
      }
     }
    }, 1000);
   };
   var validatePass = (rule, value, callback) => {
    if (value === '') {
     callback(new Error('请输入密码'));
    } else {
     if (this.ruleForm2.checkPass !== '') {
      this.$refs.ruleForm2.validateField('checkPass');
     }
     callback();
    }
   };
   var validatePass2 = (rule, value, callback) => {
    if (value === '') {
     callback(new Error('请再次输入密码'));
    } else if (value !== this.ruleForm2.pass) {
     callback(new Error('两次输入密码不一致!'));
    } else {
     callback();
    }
   };
   return {
    ruleForm2: {
     pass: '',
     checkPass: '',
     age: ''
    },
    rules2: {
     pass: [
      { validator: validatePass, trigger: 'blur' }
     ],
     checkPass: [
      { validator: validatePass2, trigger: 'blur' }
     ],
     age: [
      { validator: checkAge, trigger: 'blur' }
     ]
    }
   };
  },
  methods: {
   submitForm(formName) {
    this.$refs[formName].validate((valid) => {
     if (valid) {
      alert('submit!');
     } else {
      console.log('error submit!!');
      return false;
     }
    });
   },
   resetForm(formName) {
    this.$refs[formName].resetFields();
   }
  }
 }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

vue2.X+elementUI表单自定义验证方法

<template>
 <div class="taxi-appointment-dairen">
  <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
   <div class="dairen-input">
    <el-form-item>
     <el-input
      v-model="ruleForm.name"
      placeholder="请输入乘车人姓名(选填)">
     </el-input>
    </el-form-item>
    <i class="fa fa-user fa-2x"></i>
   </div>
   <div class="dairen-input">
    <el-form-item prop="number">
     <el-input
      v-model="ruleForm.number"
      placeholder="请输入乘车人手机号码">
     </el-input>
    </el-form-item>
    <i class="fa fa-mobile-phone fa-2x"></i>
   </div>
   <div class="popover-btn">
    <el-button @click="submitForm('ruleForm')" type="primary">确定</el-button>
   </div>
  </el-form>
 </div>
</template>
<script>
 export default {
  data () {
   var ruleNumber = (rule, value, callback) => {
    var myreg = /^[1][3,4,5,7,8][0-9]{9}$/;
    if (value === '') {
     callback(new Error('请输入乘车人手机号码'));
    } else if(!myreg.test(value)) {
     callback(new Error('请输入正确乘车人手机号码'));
    }else {
     callback();  //重点在这 如果在验证通过后不添加callback()函数在验证时是条件会为false
    }
   };
   return {
    ruleForm: {
     name: '',
     number: ''
    },
    rules: {
     number: [{ validator: ruleNumber, trigger: 'blur' }]
    }
   }
  },
  methods: {
   submitForm (formName) {
    this.$refs[formName].validate((valid) => {
     if (valid) {   //在验证通过时时不返回callback()时 这一步进不来
      console.log(valid)
     } else {
      return false
     }
    });
   }
  }
 }
</script>

以上这篇vue表单自定义校验规则介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
图片格式的JavaScript和CSS速查手册
Aug 20 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
Jul 31 Javascript
jquery放大镜效果超漂亮噢
Nov 15 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
Mar 05 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 Javascript
vue实现随机验证码功能的实例代码
Apr 30 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
Layui数据表格之单元格编辑方式
Oct 26 Javascript
在react中使用vue的状态管理的方法示例
May 02 Javascript
JavaScript实现串行请求的示例代码
Sep 14 Javascript
vue+axios+mock.js环境搭建的方法步骤
Aug 28 #Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 #Javascript
浅谈VUE单页应用首屏加载速度优化方案
Aug 28 #Javascript
浅谈redux以及react-redux简单实现
Aug 28 #Javascript
Vue封装的可编辑表格插件方法
Aug 28 #Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 #Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 #Javascript
You might like
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
js实现微信聊天界面
2020/08/09 Javascript
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Python pip使用超时问题解决方案
2020/08/03 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
宿舍违规检讨书
2014/01/12 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
酒店开业主持词
2015/07/02 职场文书
联村联户简报
2015/07/21 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
Python实现为PDF去除水印的示例代码
2022/04/03 Python