当前位置: 首页 > article >正文

Element使用表单重置如果不使用prop,重置无法生效

文章目录

      • 为什么需要 `prop`?
      • 示例:使用 `prop` 的正确方式
      • 关键点
      • 总结

element-uiel-form 组件中, prop 属性是与表单验证和表单字段绑定密切相关的,尤其在使用 resetFields() 重置表单数据时。
如果不使用 propel-form 将无法准确地识别和操作每个表单项,因此重置操作可能无法生效。

为什么需要 prop

  1. 验证依赖:表单验证需要通过 prop 来区分不同的表单项,确保验证规则能够正确应用。没有 propel-form 就无法知道如何验证这个字段,也无法在表单重置时清除验证状态。

  2. 重置操作resetFields() 方法是通过表单项的 prop 来重置相应的数据的。如果没有 propel-form 就无法识别哪些字段需要被重置,从而导致重置操作无法生效。

示例:使用 prop 的正确方式

<template>
  <div style="padding: 20px;">
    <el-form ref="form" :model="form" label-width="auto" style="width:100%">
      <el-row>
        <el-col :span="12">
          <el-form-item label="产品名称" prop="name">
            <el-input v-model="form.name" placeholder="请输入产品名称" />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="产品类型" prop="region">
            <el-select v-model="form.region" placeholder="请输入产品类型">
              <el-option label="应用产品" value="001" />
              <el-option label="WEB产品" value="002" />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="24">
          <el-form-item label="产品简介" prop="desc">
            <el-input v-model="form.desc" type="textarea" />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row justify="center">
        <el-form-item>
          <el-button type="primary" @click="onSubmit">搜索</el-button>
          <el-button @click="onReset">重置</el-button>
        </el-form-item>
      </el-row>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        region: '',
        desc: ''
      }
    };
  },
  methods: {
    onSubmit() {
      console.log('submit!');
    },
    onReset() {
      this.$refs.form.resetFields();
    }
  }
};
</script>

<style lang="scss" scoped>
/* 样式部分 */
</style>

关键点

  1. prop 属性:为每个 el-form-item 添加 prop 属性,prop 应该与 model 中的字段名称对应。这样,el-form 才能正确地识别并重置每个字段。

  2. resetFields()this.$refs.form.resetFields() 会根据 prop 属性来重置表单项的值和校验状态,因此必须为每个表单项提供 prop

总结

没有 propresetFields() 无法知道要重置哪些字段,从而导致重置操作无法生效。因此,为了使表单重置生效,确保每个 el-form-item 都有 prop 属性,且 propmodel 中的数据字段相对应。


http://www.kler.cn/a/520925.html

相关文章:

  • 【elasticsearch】如何更新许可证(License)
  • node 爬虫开发内存处理 zp_stoken 作为案例分析
  • 【C语言练习题】正弦函数
  • Vue 3 中的标签 ref 与 defineExpose:模板引用与组件暴露
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)
  • 渗透测试-WAF是什么以及原理解释 waf功能详解
  • flink写parquet解决timestamp时间格式字段问题
  • 【已解决】黑马点评项目Redis版本替换过程的数据迁移
  • Flowmix/Docx 多模态文档编辑器: 让文档不止于文档
  • Protobuf序列化协议使用指南
  • 基于微信小程序的移动学习平台的设计与实现 移动学习平台(源码+文档)
  • Ubuntu20.04 运行 Cartographer demo bag
  • Ubuntu-手动安装 SBT
  • 物联网MQTT协议及本地化部署测试
  • doris:ORC
  • 每日 Java 面试题分享【第 9 天】
  • HTTP(1)
  • Golang Gin系列-9:Gin 集成Swagger生成文档
  • GPT 结束语设计 以nanogpt为例
  • VScode+Latex (Recipe terminated with fatal error: spawn xelatex ENOENT)
  • doris:Insert Into Values
  • 深入理解若依RuoYi-Vue数据字典设计与实现
  • 关于使用微服务的注意要点总结
  • LongLoRA:高效扩展大语言模型上下文长度的微调方法
  • 机器学习周报-文献阅读
  • 算法知识补充2