首页 > 语言 > JavaScript > 正文

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

2024-05-06 15:31:02
字体:
来源:转载
供稿:网友

如下所示:

<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>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选