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

elementUI表单

2026-03-06 05:06:53前端教程

ElementUI 表单基础用法

ElementUI 提供了 el-form 组件用于快速构建表单。表单需要绑定数据模型并通过 rules 属性设置校验规则。

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

<script>
export default {
  data() {
    return {
      formData: {
        username: '',
        password: ''
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' },
          { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.formRef.validate(valid => {
        if (valid) {
          // 表单验证通过
        }
      })
    }
  }
}
</script>

表单验证规则配置

ElementUI 表单验证使用 async-validator 库,支持多种验证规则:

rules: {
  fieldName: [
    { required: true, message: '必填项', trigger: 'blur' },
    { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' },
    { pattern: /^[a-z]+$/, message: '只能包含小写字母', trigger: 'blur' },
    { validator: customValidator, trigger: 'blur' }
  ]
}

自定义验证函数示例:

const customValidator = (rule, value, callback) => {
  if (value !== 'example') {
    callback(new Error('输入必须为example'))
  } else {
    callback()
  }
}

表单布局方式

ElementUI 表单支持多种布局方式:

内联表单:

<el-form :inline="true">
  <!-- 表单项 -->
</el-form>

标签位置设置:

<el-form label-position="top">
  <!-- 表单项 -->
</el-form>

响应式布局:

<el-form label-width="auto">
  <!-- 表单项 -->
</el-form>

动态表单处理

动态增减表单项:

<el-form>
  <el-form-item v-for="(item, index) in dynamicItems" :key="index">
    <el-input v-model="item.value"></el-input>
    <el-button @click="removeItem(index)">删除</el-button>
  </el-form-item>
  <el-button @click="addItem">添加</el-button>
</el-form>

表单提交与重置

表单提交和重置方法:

methods: {
  submitForm() {
    this.$refs.formRef.validate(valid => {
      if (valid) {
        // 提交逻辑
      }
    })
  },
  resetForm() {
    this.$refs.formRef.resetFields()
  }
}

表单自定义验证

自定义复杂验证逻辑:

methods: {
  validatePassword(rule, value, callback) {
    if (value.length < 6) {
      callback(new Error('密码不能少于6位'))
    } else if (!/[A-Z]/.test(value)) {
      callback(new Error('必须包含大写字母'))
    } else {
      callback()
    }
  }
}

表单禁用状态

设置整个表单或单个表单项为禁用状态:

elementUI表单

<el-form disabled>
  <!-- 整个表单禁用 -->
</el-form>

<el-form-item>
  <el-input :disabled="true"></el-input>
</el-form-item>

标签: 表单elementUI
分享给朋友:

相关文章

vue怎么实现表单

vue怎么实现表单

Vue 表单实现方法 Vue 提供了多种方式实现表单,包括双向数据绑定、表单验证和动态表单生成。以下是常见的实现方法。 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定,适用于输…

vue实现表单填写

vue实现表单填写

Vue 表单实现方法 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定,适用于输入框、单选、多选等场景。示例代码: <template> <input v-…

vue实现表单窗口

vue实现表单窗口

Vue 实现表单窗口的方法 使用 Vue 组件创建表单 创建一个 Vue 单文件组件(SFC),包含表单元素和提交逻辑。表单可以包含输入框、下拉菜单、复选框等常见元素。 <template&g…

vue实现多表单

vue实现多表单

Vue 实现多表单的方法 在 Vue 中实现多表单可以通过多种方式完成,以下是一些常见的方法: 动态表单生成 使用 v-for 动态生成多个表单,结合数组或对象存储表单数据。这种方法适合表单结构相似…

vue实现收缩表单

vue实现收缩表单

Vue 实现收缩表单的方法 使用 v-show 或 v-if 控制显示 通过 Vue 的指令 v-show 或 v-if 可以轻松实现表单的收缩效果。v-show 通过 CSS 的 display 属…

vue实现表单页

vue实现表单页

基础表单实现 在Vue中创建表单需要使用v-model指令实现双向数据绑定。以下是一个基础表单示例: <template> <form @submit.prevent="han…