【问题标题】:js object notation in html input namehtml 输入名称中的 js 对象表示法
【发布时间】:2017-03-02 22:54:14
【问题描述】:

我正在使用带有 node.js 的服务器端 javascript。 是否可以像这样在 html 中创建表单输入名称:

<input name="name.first">
<input name="name.last">

要在服务器端获取这个 js 对象吗?

req.body = {
    name: {
        first: "firstname",
        last: "lastname"
    }
}

实际上,我得到的不是带有孩子“first”和“last”的“name”对象,而是:

'realname.first': 'firstname',
'realname.last': 'lastname',
...

node.js 的问题??

解决方案:

就像 Eero Otsus 所说,我必须设置括号,而不是句号。 例如:

&lt;input name="name[first]"&gt;

非常感谢。

【问题讨论】:

  • 是的,这是可能的,但您需要 POSTGET 方法以及发布它的数据库。
  • 您不能让浏览器以该格式提交数据(至少从表单提交中,您可以使用 XMLHttpRequest 随意格式化它)。不过,将其从 the standard data formats 之一转换为非常基本的数据。
  • “node.js 的问题??” — 绝对不是,因为它不包含以这种方式解析表单数据的任何内容。您必须使用库。这就是为什么问题应该包括minimal reproducible example
  • 您需要在客户端将POST 数据格式化为所需格式,或者在服务器端使用中间件来执行相同操作。虽然我想知道name[first]name[last] 将如何工作? PHP 会将其格式化为数组,但我怀疑 node.js 是否会 OTB。

标签: javascript html


【解决方案1】:

我在使用 node 和 mongoose 时遇到了类似的问题。我的用户控制器正在与我的表单作斗争。我最终留下了表单input name="name" > 用于输入名字和姓氏。这将它们作为值 0 和 1 放入“名称”数组中。然后我将控制器更改为 姓名:{第一个:req.body.name[0],最后一个:req.body.name[1]}。问题已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多