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

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 进行异步校验,例如验证用户名是否已存在:

form表单elementui

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
分享给朋友:

相关文章

jquery提交表单

jquery提交表单

使用 jQuery 提交表单 jQuery 提供了多种方法来提交表单,以下是常见的几种实现方式: 监听表单提交事件 通过监听表单的 submit 事件,可以阻止默认提交行为并执行自定义逻辑(如 Aj…

jquery验证表单

jquery验证表单

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

vue实现步骤表单

vue实现步骤表单

Vue 实现步骤表单的方法 使用动态组件切换步骤 通过 Vue 的 component 动态组件结合 v-if 或 v-show 实现步骤切换。定义多个子组件,每个组件代表一个步骤表单页。 <…

vue实现form表单

vue实现form表单

Vue 实现 Form 表单的方法 使用 v-model 实现双向绑定 在 Vue 中,可以通过 v-model 指令实现表单元素与数据的双向绑定。例如,创建一个包含输入框、复选框和下拉框的表单:…

vue实现流程表单

vue实现流程表单

Vue 实现流程表单的方法 使用动态组件实现步骤切换 在 Vue 中可以通过动态组件结合状态管理来实现流程表单的分步操作。定义一个父组件管理当前步骤,子组件处理各步骤的表单逻辑。 <templ…

vue 实现表单验证

vue 实现表单验证

使用 Vue 内置验证指令 Vue 提供了一些内置指令用于表单验证,例如 v-model 和 v-bind。结合 HTML5 的表单验证属性,可以快速实现基础验证。 <template>…