首页 > 其他分享 >js: ElementUI表单验证validate和validateField

js: ElementUI表单验证validate和validateField

时间:2023-02-22 18:00:27浏览次数:46  
标签:console ElementUI errorMessage 校验 js valid validate validateField true

文档回顾1、validate:

对整个表单进行校验的方法,参数为一个回调函数。
该回调函数会在校验结束后被调用,并传入两个参数:是否校验成功和未通过校验的字段。
若不传入回调函数,则会返回一个 promise

Function(callback: Function(boolean, object))

  

2、validateField:

对部分表单字段进行校验的方法

Function(props: array | string, callback: Function(errorMessage: string))

示例

 

 代码:

<template>

<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
size="mini"
>
<el-form-item
label="姓名"
prop="name"
>
<el-input v-model.trim="form.name"></el-input>
</el-form-item>

<el-form-item
label="年龄"
prop="age"
>
<el-input v-model.number="form.age"></el-input>
</el-form-item>

<el-form-item
label="学校"
prop="school"
>
<el-input v-model.trim="form.school"></el-input>
</el-form-item>

<el-form-item>
<el-button
type="primary"
@click="validate"
>校验全部</el-button>

<el-button
type="primary"
@click="validateField"
>校验单个字段</el-button>

<el-button
type="primary"
@click="validateFields"
>校验多个字段</el-button>

</el-form-item>
</el-form>

</template>

<script>
// created at 2021-09-23
export default {
name: 'TestForm',

data() {
return {
form: {
name: '',
age: '',
school: '',
      },

rules: {
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
age: [
          {
required: true,
message: '请输入年龄',
trigger: 'blur',
          },
          { type: 'number', message: '年龄必须为数字值', trigger: 'blur' },
        ],
school: [{ required: true, message: '请输入学校', trigger: 'blur' }],
      },
    };
  },

methods: {
/**
     * 校验全部字段
     */
validate() {
this.$refs['form'].validate((valid) => {
console.log(valid); // true/false
      });
    },

/**
     * 校验单个字段
     */
validateField() {
this.$refs['form'].validateField('name', (errorMessage) => {
console.log(errorMessage);

let valid = errorMessage == '' ? true : false;

console.log(valid); // true/false
      });
    },

/**
     * 校验多个字段
     */
validateFields() {
// 需要校验的字段
let fieldsToValidate = ['name', 'age'];

// 将回调转换为Promise
Promise.all(
fieldsToValidate.map((field) => {
return new Promise((resolve, reject) => {
this.$refs['form'].validateField(field, (errorMessage) => {
resolve(errorMessage);
            });
          });
        })
      ).then((errorMessages) => {
console.info(errorMessages);
//  ['请输入姓名', '请输入年龄']

// errorMessages 里是各个字段的验证错误信息, 如果数组里全为空串则所有验证通过
// 判断errorMessages 里是否全是空串
let valid = errorMessages.every((errorMessage) => {
return errorMessage == '';
        });

console.log(valid); // true/false
      });
    },
  },
};
</script>

<style lang="scss" scoped>
</style>

 

 

标签:console,ElementUI,errorMessage,校验,js,valid,validate,validateField,true
From: https://www.cnblogs.com/mmzuo-798/p/17145356.html

相关文章

  • js中的函数的各种形态 230222
    标准函数functionfn(){console.log(1111)}fn()匿名函数等号右边是匿名函数varfn=function(){console.log(222)}fn()自启动函数本质还是匿名函数(function()......
  • 2023年02月16日vue.js 教程
    1.创建第一个vuevue应用结构可以分成两个部分,一个是视图,一个是脚本;脚本有两个参数:el和data视图 <divid="app"> {{message}}{{name}} </div> 脚本 <......
  • E007Web学习笔记-JavaScript(五):JS事件
    一、概述1、事件概念某些组件被执行了某些操作后,触发某些代码的执行;事件:某些操作,如点击,双击,鼠标移动,键盘按下……; 2、事件源组件,如按钮、文......
  • E004Web学习笔记-JavaScript(二):JS对象
    一、Function1、概述是一个函数对象; 2、Function:函数(方法)对象①创建//1、方法1(不建议使用)varfun=newFunction(形参列表,方法体);示......
  • sqlserver、mysql、sqlite json类型数据查询及索引优化
     sqlserver:#querySELECTSalesOrderNumber,OrderDate,JSON_VALUE(Info,'$.Customer.Name')ASCustomerNameFROMSales.SalesOrderHeaderWHEREJSON_VA......
  • golang 解析json数据
       packagemainimport(jsoniter"github.com/json-iterator/go")funcString2Bytes(datastring)[]byte{return[]byte(data)}funcmain(){......
  • 前端JS for-in和for-of的区别
    forin遍历对象,返回的是对象的key; 遍历数组/字符串,返回的是数组的下标forof只能遍历的是数组遍历数组对象,返回单个对象;遍历数组元素/字符串,返回单个元素举例......
  • js继承
    什么是继承?继承建立在面向对象基础上的一种代码复用方式,子类通过继承来复用父类的代码1.原型链继承过程:访问对象时,如果对象私有属性中没有该属性,会去对象的构造函数的pr......
  • js事件循环机制
    宏任务:script、setTimeout、setInterval、setImmdiate、I/O、UIrendering微任务:promise、Object.observe、MutationObserver任务的优先级:process.nextTick>promise.th......
  • js - 时间计算(相差月份)
     //不考虑日期,只考虑年和月functionIsGreaterThanM(start,end,m){conststartYear=start.getFullYear();constendYear......