如何在html输入中创建多级对象?

时间:2016-12-07 22:15:39

标签: javascript html forms input

由于name='country[city]有效创建{city:"Some City"},我认为name='country[city[street]]'会创建{city:{street:"Some Street"}}

但令我失望的是它没有!还有另一种方法可以用一种不太复杂的方式实现这一目标吗?

3 个答案:

答案 0 :(得分:1)

  

由于name='country[city]可以创建{city:"Some City"}

它没有,至少没有任何标准方式。

任何标准表单编码都只会将名称设置为"country[city]"。您可以通过使用GET表单并查看生成的URL来查看。它是application/x-www-form-urlencoded的非标准扩展,它开始将其扩展为在服务器上解析数据后比字符串更复杂的数据类型。

一般来说,这些系统可让您尽可能深入地嵌套。你只需要将方括号放在正确的位置:

name="country[city][street]"

答案 1 :(得分:0)

这会产生你的期望:

<form action="#">
    <input type="text" name="city[street]">
    <input type="submit" value="Go">
</form>

结果:

{"city":{"street":"Some Street"}}

更多关卡:

<form action="#">
    <input type="text" name="country[city][street]">
    <input type="submit" value="Go">
</form>

结果:

{"country":{"city":{"street":"Some Street"}}}

答案 2 :(得分:0)

这来自javascript,如何创建对象以及可以访问对象。 []是您可能更熟悉的点(。)的替代符号。 See reference

    var country = {}; // create object
    country["city"] = "Some city"; // assign property
    country["city"]["street"] = "Some street"; // assing nested property