ElementUI嵌套Form的Dialog如何重置Form

35次阅读

共计 679 个字符,预计需要花费 2 分钟才能阅读完成。

场景

第一次打开页面时,先点添加按钮

选中第一行

先点击添加按钮,执行 resetFields(),重置 form,正常。

再点击修改按钮,回显用户信息,正常。

第一次打开页面时,先点修改按钮

选中第一行

先点击修改按钮,回显用户信息,正常。

再点击添加按钮,执行 resetFields(),没有重置 form, 异常

分析

官方文档的描述是重置为初始值。在创建 form 对象时,使用 model 绑定的 表单数据对象 ,在 form 对象的mounted 时期记录了下来第一次使用的 表单数据对象 ,这个表单数据对象就是 初始值 ,每次调用resetFields() 重置表单,都是使用这个 初始值,所以重置并不是清空。

<el-form ref="form" :model="form" label-width="80px">
... ...
</el-form>

解决

先调用 resetFields() 重置表单并移除校验结果,然后将 表单数据对象 置空。

resetEntityForm: function () {this.$nextTick(function () {this.$refs.entityForm.resetFields();
        for (var key in this.entity) {if (this.entity.hasOwnProperty(key)) {this.entity[key] = '';
            }
        }
    });
}

参考:
解决 ElementUI form 表单在 dialog 中重置表单,无法正确重置的问题
elementui- 清除弹框中表单的默认值 -resetFields()
element-ui 表单清空 resetFields 方法清空表单中的坑

正文完
 0