首页 > 解决方案 > JSON 数据更改未正确保存

问题描述

我正在尝试在将 Json 数据保存到数据库之前更新它们。我已将 json 放在一个 teaxtarea 中以查看更改,对于任何更新,我都可以在该 textarea 中看到它们。但是当我在那个 textarea 上做一个检查元素时,值没有改变。这怎么可能呢?那个检查元素会有所不同吗?当我尝试保存时,它总是保持不变。关于这里发生的事情有什么想法吗?以下是 json 的更新方式:

function saveEdit() {
        var id = $("#menu_id").val();
        var updatedTitle = $("#menuTitle").val();
        var json = JSON.parse($('#nestable3-output').text());
        $('#menuName').modal('hide');

        updateObjectField(json, id, updatedTitle);
        document.getElementById('nestable3-output').value = JSON.stringify(json)
    }

    function updateObjectField(obj, id, updatedTitle) {
            obj.forEach((item) => {
                if (item.id === parseInt(id)) {
                    item.content = updatedTitle;
                } else {
                    if(item.children && Array.isArray((item.children))) {
                        updateObjectField(item.children, id, updatedTitle);
                    }
                }
            })

    }

标签: javascriptjqueryjson

解决方案


不知道为什么,但问题是这一行:

document.getElementById('nestable3-output').value = JSON.stringify(json)

我改为:

$('#nestable3-output').text(JSON.stringify(json));

它奏效了。如果有人现在的原因,那就太好了。


推荐阅读