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

form表单elementui

2026-03-05 17:28:58前端教程

表单基础用法

Element UI 的表单组件通过 el-form 封装,需配合 el-form-item 和表单控件(如 el-inputel-select)使用。表单需绑定 model 对象,通过 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' }],
        password: [{ required: true, message: '请输入密码', trigger: 'blur' }]
      }
    };
  },
  methods: {
    submitForm() {
      this.$refs.formRef.validate(valid => {
        if (valid) {
          console.log('表单验证通过', this.formData);
        }
      });
    }
  }
};
</script>

表单校验规则

校验规则通过 rules 配置,支持多种校验类型:

  • required:必填项。
  • min/max:输入长度限制。
  • pattern:正则校验。
  • validator:自定义校验函数。
rules: {
  email: [
    { required: true, message: '邮箱不能为空' },
    { type: 'email', message: '请输入正确的邮箱格式' }
  ],
  age: [
    { validator: (rule, value, callback) => {
      if (value < 18) callback(new Error('年龄需大于18岁'));
      else callback();
    }, trigger: 'blur' }
  ]
}

动态表单字段

通过 v-for 动态生成表单字段,需注意每个 el-form-itemprop 需与动态绑定的数据路径匹配。

<el-form-item 
  v-for="(item, index) in dynamicFields" 
  :key="index" 
  :label="'字段' + (index + 1)" 
  :prop="'items.' + index + '.value'"
>
  <el-input v-model="item.value"></el-input>
</el-form-item>

表单布局

Element UI 提供 inline(行内表单)、label-position(标签对齐方式)等布局配置:

<el-form :model="formData" label-position="top" inline>
  <el-form-item label="用户名">
    <el-input v-model="formData.username"></el-input>
  </el-form-item>
  <el-form-item label="密码">
    <el-input v-model="formData.password"></el-input>
  </el-form-item>
</el-form>

表单重置与清除

通过 resetFields 方法重置表单至初始值,clearValidate 清除校验状态:

methods: {
  resetForm() {
    this.$refs.formRef.resetFields();
  },
  clearValidation() {
    this.$refs.formRef.clearValidate();
  }
}

表单提交与异步校验

提交时可结合 async-validator 进行异步校验,例如验证用户名是否已存在:

submitForm() {
  this.$refs.formRef.validate(async valid => {
    if (valid) {
      try {
        const res = await checkUsername(this.formData.username);
        if (res.exists) {
          this.$message.error('用户名已存在');
        } else {
          // 提交逻辑
        }
      } catch (error) {
        console.error(error);
      }
    }
  });
}

form表单elementui

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

相关文章

css怎么制作表单

css怎么制作表单

基础表单结构 使用HTML创建表单元素,搭配CSS进行样式设计。表单通常包含<form>标签及输入控件(如<input>、<textarea>、<select…

jquery 表单

jquery 表单

jQuery 表单操作 使用 jQuery 操作表单可以简化 DOM 操作,提高开发效率。以下是一些常见的表单操作方法: 获取表单元素的值 使用 val() 方法可以获取或设置表单元素的值。…

jquery验证表单

jquery验证表单

jQuery 表单验证方法 使用 jQuery 进行表单验证可以通过多种方式实现,以下是几种常见的方法: 使用 jQuery Validate 插件 jQuery Validate 是一个流行的表…

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…

vue中表单实现

vue中表单实现

Vue 表单实现方法 双向绑定(v-model) 在Vue中,表单元素通常通过v-model实现双向数据绑定,将表单输入与组件数据同步。 <template> <input…