Vue.js 表单数据清除问题:修改后表单内容不保留的解决方法

在使用 Vue.js 开发项目时,经常会遇到表单数据修改后,表单内容无法保留的问题。本文将通过一个具体的代码示例,分析导致这个问题的原因并提供解决方案。

问题描述:

以下代码是一个 edit() 函数,用于处理表单数据的修改操作。代码中,无论是在 if 语句块还是 else 语句块中,都会执行 this.form = {}this.dialogFormVisible = false 两行代码,用于清空表单数据和关闭对话框。然而,在 if 语句块或 else 语句块执行完之后,又会执行一次 this.form = {},导致表单数据被重复清空。

edit() {
    if (this.form.id == undefined) {
        instance.post('/branchs', this.form).then(res => {
            if (res.date.code == 0) {
                instance.get('/branchs').then(res => {
                    this.tableData = res.data.data;
                })
                this.form = {}
            }
        })
    } else {
        instance.put('/branchs', this.form).then(res => {
            if (res.date.code == 0) {
                instance.get('/branchs').then(res => {
                    this.tableData = res.data.data;
                })
                this.form = {}
            }
        })
    }
    this.form = {}
    this.dialogFormVisible = false
}

解决方案:

为了解决这个问题,可以将 if 语句块和 else 语句块中的 this.form = {} 代码移动到 if 语句块和 else 语句块之外,即放在整个 edit() 函数的最后一行。这样就避免了重复清空表单数据,保证了修改完内容后表单中的内容不被清除。

修改后的代码:

edit() {
    if (this.form.id == undefined) {
        instance.post('/branchs', this.form).then(res => {
            if (res.date.code == 0) {
                instance.get('/branchs').then(res => {
                    this.tableData = res.data.data;
                })
                this.form = {}
            }
        })
    } else {
        instance.put('/branchs', this.form).then(res => {
            if (res.date.code == 0) {
                instance.get('/branchs').then(res => {
                    this.tableData = res.data.data;
                })
                this.form = {}
            }
        })
    }
    this.dialogFormVisible = false
    this.form = {}
}

总结:

通过将 this.form = {} 代码的位置调整至 edit() 函数的最后,可以避免重复清空表单数据,从而解决修改后表单内容无法保留的问题。

注意:

在实际开发中,可能需要根据具体情况调整代码逻辑,确保表单数据能够被正确保存和更新。

Vue.js 表单数据清除问题:修改后表单内容不保留的解决方法

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

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