关于Vue2 + elementUI 表单重置问题

337 阅读2分钟

为什么要表单重置,哪些功能后需要重置

表单重置是在许多Web应用程序中用于清除表单输入并恢复默认值的操作。这在以下情况下特别有用:

  1. 提供更好的用户体验:当用户填写表单后,他们可能会意识到自己需要重新填写或者放弃提交表单,这时可以使用重置功能来清除已输入的内容,以便重新开始。这有助于提供更好的用户体验,特别是对于长表单或者需要多次填写的表单。

  2. 错误处理:如果用户输入了错误的信息或者需要修改已输入的内容,重置表单功能可以为用户提供一种快速且方便的方式来清除或修改原始输入。

  3. 管理状态:在某些情况下,你可能需要重置表单以恢复到初始状态,以便更好地管理表单的状态和数据。

需要重置表单的功能通常包括但不限于:搜索表单、注册表单、订购表单、设置表单、问题反馈表单等。在这些情况下,用户可能需要清除已输入的内容并重新填写,或者恢复表单的初始状态以便进行修改和再次提交。

使用 Object.assign() 简化表单重置代码

 <el-form
        :model="form"
        :rules="formRules"
        ref="editorForm"
        label-width="110px"
      >
        <el-form-item label="循环名称" prop="cycleName">
          <el-input
            v-model.trim="form.cycleName"
            placeholder="请填写循环名称"
            style="width: 80%"
            clearable
          ></el-input>
        </el-form-item>
        <el-form-item label="循环描述" prop="cycleContent">
          <el-input
            v-model.trim="form.cycleContent"
            placeholder="请填写循环描述"
            style="width: 80%"
            clearable
          ></el-input>
        </el-form-item>
         <el-form-item>
          <el-button type="info" @click="resetForm" icon="el-icon-delete"
            >重 置</el-button
          >
        </el-form-item>
      </el-form>
methods: {
  // 重置表单
  resetForm() {
    // 使用 Object.assign() 方法将 defaultForm 的属性复制到一个新对象中
    this.form = Object.assign({}, this.defaultForm);
    // 调用 editorForm 的 resetFields 方法重置表单字段(如果 editorForm 存在并且 resetFields 存在)
    this.$refs.editorForm?.resetFields?.();
  }
},
data() {
  // 初始表单数据
  return {
    defaultForm: {
      cycleName: '',
      cycleContent: '',
    },
    // 使用 Object.assign() 方法复制 defaultForm 的属性到 form 对象中
    form: Object.assign({}, this.defaultForm)
  };
}