<template> <el-form ref="formRef" :model="newProject" label-width="120px" > <el-form-item prop="projectName" label="项目名称" :rules="[ { required: true, message: '项目名称不能为空', trigger: 'blur', }, ]" > <el-input v-model="newProject.projectName" /> </el-form-item> <!-- 其他字段... --> <el-form-item> <el-button type="primary" @click="submitForm(formRef)">确定</el-button> <el-button @click="resetForm(formRef)">重置</el-button> </el-form-item> </el-form> </template> <script lang="ts" setup> import { reactive, ref } from 'vue' import type { FormInstance } from 'element-plus' const formRef = ref<FormInstance>() const newProject = reactive({ projectName: '', // 其他字段... }) const submitForm = (formEl: FormInstance | undefined) => { if (!formEl) return formEl.validate((valid) => { if (valid) { addProject() } else { console.log('error submit!') return false } }) } const resetForm = (formEl: FormInstance | undefined) => { if (!formEl) return formEl.resetFields() } // 其他代码... </script>
Vue3 Element UI 表单校验和表单重置示范
39 min read