隐藏/禁用字段从 req.body 中消失(Express JS bodyParser)
Hidden/Disabled fields disappear from req.body (Express JS bodyParser)
我一直找不到这个问题的答案。 当使用 NodeJS、Express 和 Express Bodyparser - 以及我的 MEAN 堆栈的其余部分时 - 我遇到了隐藏和禁用字段的问题:提交表单时它们不会显示在 req.body 对象中。
如果我理解正确,Express 的 bodyparser 方面实际上是取自另一个项目。 无论如何,我真的无法弄清楚为什么要删除这些字段或如何阻止这种情况发生。 我怀疑它可能与方法覆盖有关,但启用/禁用它对相关字段没有影响。
所以..对于我自己和未来的谷歌员工:这里发生了什么?
下面是一些代码,根据要求:玉:
form(action="/admin/users/edit", method="post", ng-submit='registerUser($event)', name='form', novalidate)
.row(ng-show="ifweareupdating")
label(for="_id") _id:
input(type="hidden", id="_id", name="_id", ng-model="newUser._id")
input(type="text", id="_notHiddenId', name="_notHiddenId", ng-model="newUser._id")
表达:
app.post("/admin/users/edit", pass.ensureAdmin, userRoutes.editUserPost);
用户路由:
exports.userRoutes.editUserPost = function(req,res,next) {
console.log(req.body._id) // logs undefined
console.log(req.body._notHiddenId) // logs actual id
}
这与 Express 无关。 只有成功的控件才会序列化,并在提交表单时由浏览器发送。
HTML 规范定义了使控件成功的原因。
成功的控件对于提交是"有效的"。每一次成功 控件的控件名称与其当前值配对,作为 提交的表单数据集。必须定义成功的控件 在 FORM 元素中,并且必须具有控件名称。
然而:
- 禁用的控件无法成功。
- 如果表单包含多个提交按钮,则只有激活的提交按钮成功。
- 所有"打开"复选框都可能成功。
- 对于共享相同 name 属性值的单选按钮,只有"on"单选按钮可能成功。
- 对于菜单,控件名称由 SELECT 元素提供,值由 OPTION 元素提供。只能选择的选项 成功的。如果未选择任何选项,则控件不 成功,但名称和任何值都不会提交到 提交表单时的服务器。
- 文件选择的当前值是一个或多个文件名的列表。提交表格后,每个文件的内容是 与其余表单数据一起提交。文件内容是 根据表单的内容类型进行打包。
- 对象控件的当前值由对象的实现确定。
如果提交表单时控件没有当前值, 用户代理不需要将其视为成功的控件。
此外,用户代理不应考虑以下控件 成功的:
- 重置按钮。
- 已设置其声明属性的 OBJECT 元素。
隐藏控件和由于样式而未呈现的控件 工作表设置可能仍会成功。
你的问题实际上是棱角分明的。 显然,它没有设置隐藏输入的value
。
相关文章:
- 使用Express捕获参数
- facebook”;添加评论“;popup获胜'不要消失
- 从模块内部访问Express装载路径
- 为什么js事件消失了
- JS文件的路径正在消失
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 在Nodejs中Express输入DEBUG=app时权限被拒绝/bin
- Morris.js折线图x轴标签在调整大小后消失
- 如何使用Node/Express显示有关特定错误的自定义html页面
- 发送json对象或使用express路由呈现视图
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- JavaScript下拉菜单-部件在Mac上消失
- 为什么不't Express呈现我的React应用程序
- 将display属性更改为visible flicks,然后再次消失
- Express服务器中语言子域的最佳实践
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- Nodejs和express路由,如何处理客户端的承诺
- node.js和express中的异常处理
- TinyMCE实例在切换角度路由选项时会消失
- 隐藏/禁用字段从 req.body 中消失(Express JS bodyParser)