提交表单时,无法从req.body中的控制器访问隐藏字段的值。但是,如果我将其更改为发布,则可以。
看法
<form action="chat" method="get">
<input type="hidden" name="user2" value="Bob">
<input type="submit" value="Message" action="welcome">
</form>
控制器
getChat : function(req, res) {
Message.getAllChatMessages(req.user.local.name, req.query.user2, function(err, messages, target) {
if (err){
return next(err);
}
else {
res.render("chat", {
messages:messages,
title:"Private Chat",
target:req.query.user2});
}
});
},
routes.js
app.get("/chat", wall_controller.getChat);
您似乎误解了GET方法的工作方式。
GET使用querystrings
并且hidden input
不能创建查询字符串。如果要使用a,hidden input
则必须使用POST方法。
我建议您使用POST,但如果您确实要使用GET。这个简单的修复应该起作用:
// this should simply be a link
<form action="/chat?user2=Bob" method="get">
<input type="submit" value="Message" action="welcome">
</form>
然后,您可以使用以下命令访问参数:
req.param('user2')
渲染:
res.render("chat", {
messages : messages,
title : "Private Chat",
target : req.param('user2')
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句