我正在学习node.js和express框架的基础知识。我有一个简单的页面,上面有两个按钮:
<form action="/home2" method="post">
    <button name="butt1">butt1</button>
    <button name="butt2">butt2</button>
</form>我想在控制台中看到哪个按钮被按下了:
router.post('/', function(req, res, next) {
    console.log(req.body.name);
    res.render('home2', { title: 'post' });
});在控制台中,我只看到
undefined如何访问按钮的名称?
发布于 2015-11-14 07:38:39
我想这对你会有帮助的。
<form action="/home2" method="post">
   <button name="butt1">butt1</button>
   <button name="butt2">butt2</button>
</form>
router.post('/home2', function(req, res, next) {
  if(req.body.hasOwnProperty("butt1")){
     console.log("butt1 clicked");
  }else{
     console.log("butt2 clicked");
  }
  res.render('home2', { title: 'post' });
});发布于 2015-11-14 08:39:41
首先,由于您使用的是POST,我假设您已经有了正文解析器中间件,如果没有,请检查Body Parser Middleware
您的代码需要做一些更改
在html中
<form action="/home2" method="post">
    <button name="butt" value='1'>butt1</button>
    <button name="butt" value='2'>butt2</button>
</form>并且在快递中
router.post('/home2', function(req, res, next) {
    console.log(req.body.butt);
    res.render('home2', { title: 'post' });
});req.body.name需要为req.body.butt
/需要为/home2
发布于 2015-11-14 07:28:20
您可以使用的一个技巧是将这两个按钮用作提交按钮:
<form action="/home2" method="post">
    <button name="button_id" value="1" type="submit">butt1</button>
    <button name="button_id" value="2" type="submit">butt2</button>
</form>在服务器端,您现在应该将button_id的值设为1或2,这取决于所单击的按钮。
https://stackoverflow.com/questions/33703145
复制相似问题