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

elementui校验

2026-03-06 07:10:17前端教程

校验基本概念

Element UI 表单校验基于 async-validator 库实现,通过 rules 属性定义校验规则。校验触发方式包括手动触发(调用 validate 方法)和自动触发(表单字段变化时)。

表单校验规则配置

el-formrules 属性中定义校验规则,支持必填、长度、正则、自定义校验等:

rules: {
  username: [
    { required: true, message: '请输入用户名', trigger: 'blur' },
    { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
  ],
  email: [
    { type: 'email', message: '邮箱格式不正确', trigger: 'blur' }
  ]
}
  • required: 必填校验。
  • min/max: 长度限制。
  • type: 内置类型(如 emailurl)。
  • trigger: 触发时机(blurchange)。

自定义校验规则

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

elementui校验

rules: {
  password: [
    { validator: (rule, value, callback) => {
      if (!/^(?=.*[A-Za-z])(?=.*\d).{6,}$/.test(value)) {
        callback(new Error('密码需包含字母和数字且长度≥6'));
      } else {
        callback();
      }
    }, trigger: 'blur' }
  ]
}
  • callback() 必须调用,参数为 Error 对象时表示校验失败。

动态校验规则

通过响应式数据动态修改规则:

data() {
  return {
    dynamicRule: { required: true, message: '动态规则必填' }
  };
},
methods: {
  updateRule() {
    this.dynamicRule = { min: 5, message: '长度需≥5' };
  }
}

表单整体校验

调用 validate 方法校验整个表单:

elementui校验

this.$refs.form.validate(valid => {
  if (valid) {
    console.log('校验通过');
  } else {
    console.log('校验失败');
  }
});
  • 通过 $refs 获取表单实例。

清除校验结果

使用 clearValidate 清除单个字段或整个表单的校验状态:

this.$refs.form.clearValidate(['username']); // 清除指定字段
this.$refs.form.clearValidate();            // 清除整个表单

校验样式与反馈

  • 错误提示通过 el-form-itemerror 插槽自定义。
  • 校验失败时,字段会自动添加 is-error 类名。

嵌套数据校验

对嵌套对象或数组字段使用 prop 路径语法:

rules: {
  'user.name': [{ required: true }],
  'items[0].value': [{ min: 10 }]
}

异步校验

在自定义校验函数中返回 Promise 或调用 callback 处理异步操作:

validator: (rule, value, callback) => {
  axios.get('/check', { params: { value } }).then(res => {
    res.valid ? callback() : callback(new Error('异步校验失败'));
  });
}

标签: elementui
分享给朋友:

相关文章

elementui table

elementui table

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

elementui  文档

elementui 文档

以下是 Element UI 官方文档及相关资源的整理: 官方文档地址 Element UI 的官方文档可通过以下链接访问: 中文文档:https://element.eleme.cn…

elementui require

elementui require

ElementUI 引入方式 ElementUI 可以通过多种方式引入到项目中,具体选择取决于项目需求和开发环境。 npm 安装 适用于 Vue.js 项目,通过 npm 或 yarn 安装 El…

elementui button

elementui button

基本用法 Element UI 的 Button 组件提供多种样式和功能,可以通过 type 属性设置按钮类型。常见类型包括 primary、success、info、warning、danger。…

elementui抖动

elementui抖动

ElementUI 抖动问题解决方法 ElementUI 组件在使用过程中可能出现抖动问题,通常是由于动画、布局或渲染优化不足导致。以下是几种常见的解决方案: 调整过渡动画 ElementUI 部分…

比elementui

比elementui

对比 Element UI 的替代方案 Element UI 是一个基于 Vue.js 的流行组件库,但近年来开发者可能寻求更现代、更轻量或功能更丰富的替代品。以下是几个值得考虑的替代方案及其特点:…