当前位置:首页 > 前端教程

elementui validetor

2026-01-13 22:11:50前端教程

Element UI 表单验证方法

Element UI 提供了 el-form 组件,结合 rulesprop 属性实现表单验证。以下是常用的验证方法:

基本表单验证

el-form 中定义 rules 规则,并在 el-form-item 上指定 prop 进行绑定:

elementui validetor

<template>
  <el-form :model="form" :rules="rules" ref="formRef">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="form.username"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button @click="submitForm">提交</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: { username: '' },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' },
          { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
        ]
      }
    };
  },
  methods: {
    submitForm() {
      this.$refs.formRef.validate(valid => {
        if (valid) {
          alert('验证通过');
        } else {
          console.log('验证失败');
          return false;
        }
      });
    }
  }
};
</script>

自定义验证规则

可以通过 validator 自定义验证函数:

rules: {
  password: [
    { validator: (rule, value, callback) => {
      if (!value) {
        callback(new Error('请输入密码'));
      } else if (value.length < 6) {
        callback(new Error('密码长度不能少于6位'));
      } else {
        callback();
      }
    }, trigger: 'blur' }
  ]
}

动态表单验证

动态增减表单项时,需确保 prop 唯一且正确绑定:

elementui validetor

<el-form-item 
  v-for="(item, index) in form.dynamicItems" 
  :key="index" 
  :prop="'dynamicItems.' + index + '.value'"
  :rules="{
    required: true, 
    message: '请输入内容', 
    trigger: 'blur'
  }"
>
  <el-input v-model="item.value"></el-input>
</el-form-item>

手动清除验证

调用 clearValidate 方法清除特定表单项的验证状态:

this.$refs.formRef.clearValidate(['username']);

异步验证

结合 Promiseasync/await 进行异步校验:

rules: {
  email: [
    { validator: (rule, value, callback) => {
      if (!value) {
        callback(new Error('请输入邮箱'));
      } else {
        // 模拟异步校验
        setTimeout(() => {
          if (!value.includes('@')) {
            callback(new Error('邮箱格式不正确'));
          } else {
            callback();
          }
        }, 1000);
      }
    }, trigger: 'blur' }
  ]
}

常见验证规则

规则 说明 示例
required 必填 { required: true, message: '必填', trigger: 'blur' }
min / max 最小/最大长度 { min: 3, max: 5, message: '长度 3-5', trigger: 'blur' }
pattern 正则匹配 { pattern: /^[a-z]+$/, message: '只能小写字母', trigger: 'blur' }
type 内置类型(如 email { type: 'email', message: '邮箱格式错误', trigger: 'blur' }

注意事项

  • prop 必须与 rules 的键名一致,否则验证不生效。
  • 动态表单需确保 prop 使用正确路径(如 dynamicItems.0.value)。
  • 提交前调用 validate 方法进行整体校验。
  • 自定义验证函数需调用 callback() 表示通过,或传入 Error 对象表示失败。

分享给朋友:

相关文章

elementui中文网

elementui中文网

Element UI 中文网相关信息 Element UI 是一款基于 Vue.js 的开源 UI 组件库,由饿了么前端团队开发和维护。以下是关于 Element UI 中文网的相关信息: 官方网…

elementui获取input的值

elementui获取input的值

获取 input 值的常用方法 在 Element UI 中,可以通过 v-model 双向绑定或 ref 引用的方式获取 input 组件的值。 使用 v-model 双向绑定 <…

elementui table

elementui table

ElementUI Table 基本用法 ElementUI 的 Table 组件用于展示结构化数据,支持排序、筛选、分页等功能。以下是一个基础示例: <template> &l…

iview elementui

iview elementui

iview与Element UI对比 iview和Element UI都是基于Vue.js的UI组件库,适用于快速开发企业级中后台产品。以下是两者的主要差异和特点: 设计风格 iview采用圆角设…

vue elementui

vue elementui

Vue 中使用 Element UI Element UI 是一套基于 Vue 2.0 的桌面端组件库,提供丰富的 UI 组件和交互功能。以下是如何在 Vue 项目中集成和使用 Element UI…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Butto…