我使用的表单包含电子邮件文本输入和下拉菜单,但是当我使用发布请求提交时,请求正文仅返回电子邮件ID。
index.hbs
<form method="post" action="/query" novalidate>
<div class="form-field">
<label for="Type">Type</label>
<div class = "form-group">
<div class="col-sm-6 dropdown">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Activity 1</a></li>
<li><a class="dropdown-item" href="#">Activity 2</a></li>
<li><a class="dropdown-item" href="#">Activity 3</a></li>
</ul>
</div>
</div>
</div>
<div class="form-field">
<label for="email">Email</label>
<input class="input" id="email" name="email" type="email" value="" />
</div>
<div class="form-actions">
<button class="btn" type="submit">Send</button>
</div>
</form>
index.js
router.post('/query', function(req, res){
res.render('shop/query', {
data: req.body,
errors: {
message: {
msg: "An error occurred"
},
email:{
msg: 'That email does not look right'
}
}
});
console.log(req.body);
});
终端显示如下内容
{ email: 'example@gmail.com' }
它也应该显示从下拉列表中选择的活动。
我尝试了各种方法,但是我不明白我要去哪里。还有一种技术可以改进此方法,并使表单中选择的详细信息作为参数显示在url中,然后使用类似的方法获取详细信息
router.get('/add-to-cart/:id', function(req, res, next){
var productId = req.params.id;