POST请求未在Node中返回表单下拉值

时间:2018-06-27 13:00:20

标签: javascript html node.js

我使用的表单包含电子邮件文本输入和下拉菜单,但是当我使用发布请求提交时,请求正文仅返回电子邮件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;

0 个答案:

没有答案