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

elementui检验

2026-01-14 21:00:42前端教程

ElementUI 表单验证方法

ElementUI 提供了强大的表单验证功能,主要通过 el-formel-form-item 组件结合 rules 属性实现。以下是常见的验证方法:

基础表单验证

el-form 上绑定 :rules 属性,并在 el-form-item 上设置 prop 属性与规则对应:

<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>

验证规则配置

在数据中定义 rules 对象,支持多种验证类型:

rules: {
  username: [
    { required: true, message: '请输入用户名', trigger: 'blur' },
    { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
  ],
  email: [
    { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
  ]
}

自定义验证规则

通过 validator 函数实现复杂验证逻辑:

const validatePass = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入密码'));
  } else {
    if (this.form.checkPass !== '') {
      this.$refs.form.validateField('checkPass');
    }
    callback();
  }
};

表单提交验证

在提交时调用表单实例的 validate 方法:

methods: {
  submitForm() {
    this.$refs.formRef.validate(valid => {
      if (valid) {
        // 验证通过
      } else {
        // 验证失败
        return false;
      }
    });
  }
}

动态表单验证

对于动态生成的表单项,需要在规则变化后调用 validateField 方法更新验证状态:

this.$refs.formRef.validateField('dynamicField');

常见验证规则示例

必填验证

{ required: true, message: '该项为必填项', trigger: 'blur' }

长度验证

{ min: 6, max: 18, message: '长度在6到18个字符', trigger: 'blur' }

正则验证

{ pattern: /^[a-z]+$/, message: '只能包含小写字母', trigger: 'blur' }

类型验证

{ type: 'email', message: '请输入正确的邮箱', trigger: 'blur' }

自定义验证函数

{
  validator: (rule, value, callback) => {
    if (!value.startsWith('prefix')) {
      callback(new Error('必须以prefix开头'));
    } else {
      callback();
    }
  },
  trigger: 'blur'
}

验证触发方式

ElementUI 支持多种触发验证的方式:

  • blur:失去焦点时触发
  • change:值改变时触发
  • 数组形式可以同时指定多个触发方式

清除验证结果

使用 clearValidate 方法可以清除表单项的验证结果:

elementui检验

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

标签: elementui
分享给朋友:

相关文章

elementui流程

elementui流程

Element UI 流程设计 Element UI 提供了一套基于 Vue.js 的流程设计组件,适用于展示步骤流程、任务进度等场景。以下为关键实现方法和组件说明: 安装与引入 确保已安装 Ele…

elementui核心

elementui核心

Element UI 核心概念 Element UI 是基于 Vue.js 2.0 的桌面端组件库,其核心设计理念是简洁、高效、易用。以下是其核心组成部分: 组件化设计 提供丰富的 UI 组件,如…

elementui dropdown

elementui dropdown

ElementUI Dropdown 基础用法 ElementUI 的 Dropdown 组件用于创建下拉菜单,常用于导航或操作选项的折叠展示。以下是一个基础示例: <el-dropdown&…

elementui卡死

elementui卡死

问题描述 Element UI 卡死通常表现为页面无响应、操作延迟或组件渲染异常。可能的原因包括数据量过大、循环渲染、事件监听未销毁或版本兼容性问题。 常见原因及解决方法 数据量过大导致渲染卡顿 表…

idea elementui

idea elementui

Element UI 简介 Element UI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并开源。它提供了丰富的 UI 组件(如表格、表单、弹窗等),支持响应式布局和主题定制,适…

elementui标签

elementui标签

ElementUI 标签的基本使用 ElementUI 提供 <el-tag> 组件用于展示标签信息,支持多种样式和交互功能。 基础用法 通过 type 属性设置标签类型,可选值包括…