javascript - 如何将多级 JavaScript 对象反序列化为 HTML 表单?

标签 javascript html post deserialization json-deserialization

编辑:问题定义上存在一个概念错误和一个技术错误,因此最好关闭该问题而不是对其进行清理。当我有时间重新定义问题时,我会再次发布它。 由于不具体,请帮助投票结束。

有很多关于将复杂的 HTML 表单序列化为其相应的 JavaScript 对象的信息和问题(例如 this )。

这是该过程的示例:具有此表单

<form>
    <input type="text" name="scalar" value="1">
    <input type="text" name="array[0]" value="1">
    <input type="text" name="array[1]" value="2">
    <input type="text" name="array[2]" value="3">
    <input type="text" name="object[subscalar]" value="1">
</form>

并从中获取这个 javascript 对象

{
  "scalar": 1,
  "array": [1, 2, 3],
  "object": {
    "subscalar": 1
  }
}

但是我怎样才能做相反的工作呢?

我们的目标是针对单独的浏览器窗口执行 native POST。我们有一个复杂的 JavaScript 对象,并且通过 AJAX POST 发送,因此我们直接使用该对象作为 jQuery.ajax 数据参数。但现在我们需要在 DOM 中创建一个真实的表单,其中包含具有所有括号语法的输入和值,然后针对特定框架本地提交它。

jQuery 的使用是可选的。已经存在的方法、库等比自定义片段更可取。这并不是因为无法编写代码,而是因为不确定我们是否需要重新发明轮子。

提前致谢。

最佳答案

function parseform(elem,parent=""){
    this.html="";
    this.parent=parent;
    if(typeof elem=="Array"){
        var counter=0;
        elem.forEach(function(a){
            this.html+=new parseform(a,this.parent+"["+counter+"]").html;
            counter++;
        });
    }
    if(typeof elem=="String"){
        this.html+="<input name='"this.parent+"["+elem+"]' />";
    }
    //object in progress
    if(typeof elem=="Object"){
        for (var key in elem) { 
            if (p.hasOwnProperty(key)) { 
                this.html += new parseform(elem[key],this.parent="["+key+"]").html;
            }
        }
    }
}

像这样使用:

 code=new parseform(yourjsondecoded).html;

我知道你不需要代码,但我不认为有一个 API 可以用于如此具体的东西

关于javascript - 如何将多级 JavaScript 对象反序列化为 HTML 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39373987/

相关文章:

javascript - [b,a] =[a,b] 和 const [b,a]=[a,b] 有什么区别

javascript - jQuery 使用动态 ID 和定义的 CSS 属性(定义该 div 的外观和位置)创建 DIV

javascript - 在重定向到 WordPress 页面之前使用 JavaScript 测试它是否存在

在 Mac OSX 上的 Firefox 中使用 JQuery 的 Javascript 表构造错误

javascript - JSON 结果从 address_components 获取国家

css - Bootstrap 重新排序适用于 3.0,不适用于 3.1.1

php - 使用 jquery 加载 html/php 文件

PHP $_POST 不工作,但 $_GET 工作正常

javascript - 有没有一种简单的方法使用 Node.js 发送 POST 请求?

php - 错误: SQLSTATE[42000]: Syntax error or access violation: 1064 - PHP MYSQL