<template>
  <el-form :model="formData" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
    <el-form-item label="姓名" prop="name">
      <el-input v-model.trim="formData.name" placeholder="请输入姓名"></el-input>
    </el-form-item>
    <el-form-item label="性别" prop="gender">
      <el-radio-group v-model="formData.gender">
        <el-radio label="male">男</el-radio>
        <el-radio label="female">女</el-radio>
      </el-radio-group>
    </el-form-item>
    <el-form-item label="兴趣爱好" prop="hobby">
      <el-checkbox-group v-model="formData.hobby">
        <el-checkbox label="reading">阅读</el-checkbox>
        <el-checkbox label="music">音乐</el-checkbox>
        <el-checkbox label="sports">运动</el-checkbox>
      </el-checkbox-group>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm">提交</el-button>
      <el-button @click="resetForm">重置</el-button>
    </el-form-item>
  </el-form>
</template>
<script setup>
  import { ref } from 'vue'
  import { ElForm, ElFormItem, ElInput, ElRadioGroup, ElRadio, ElCheckboxGroup, ElCheckbox, ElButton } from 'element-plus'

  const formData = ref({
    name: '',
    gender: '',
    hobby: []
  })

  const rules = ref({
    name: [
      { required: true, message: '请输入姓名', trigger: 'blur' }
    ],
    gender: [
      { required: true, message: '请选择性别', trigger: 'change' }
    ],
    hobby: [
      { required: true, type: 'array', min: 1, message: '请至少选择一个兴趣爱好', trigger: 'change' }
    ]
  })

  function submitForm() {
    const form = this.$refs.form
    form.validate((valid) => {
      if (valid) {
        alert('提交成功')
      } else {
        console.log('error submit!!')
        return false
      }
    })
  }

  function resetForm() {
    const form = this.$refs.form
    form.resetFields()
  }
</script>
<style>
  .demo-ruleForm {
    max-width: 600px;
    margin: 0 auto;
  }
</style>
用element-plus框架插入一个提交表单要求有姓名性别兴趣爱好需要校验需要重置功能生成vue3生成vue3格式 script setup代码要求所有方法或箭头函数都用function定义要求所有变量为ref响应式无需任何文字说明只要源码即可

原文地址: https://www.cveoy.top/t/topic/bdWZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录