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

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 方法可以清除表单项的验证结果:

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

elementui检验

标签: elementui
分享给朋友:

相关文章

elementui响应式布局

elementui响应式布局

响应式布局基础概念 响应式布局指页面能够根据屏幕尺寸自动调整结构和样式,确保在不同设备上呈现良好的用户体验。Element UI 基于 Vue.js,其组件默认支持响应式设计,但需结合 CSS 媒体查…

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升级plus

elementui升级plus

Element UI 升级到 Element Plus 的方法 Element Plus 是 Element UI 的升级版本,专为 Vue 3 设计,提供了更好的性能和更多新特性。以下是升级的具体步…

vue elementui

vue elementui

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

elementui组件

elementui组件

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