首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何知道哪个按钮被按下了?

如何知道哪个按钮被按下了?
EN

Stack Overflow用户
提问于 2015-11-14 07:04:58
回答 4查看 3.5K关注 0票数 6

我正在学习node.js和express框架的基础知识。我有一个简单的页面,上面有两个按钮:

代码语言:javascript
运行
复制
<form action="/home2" method="post">
    <button name="butt1">butt1</button>
    <button name="butt2">butt2</button>
</form>

我想在控制台中看到哪个按钮被按下了:

代码语言:javascript
运行
复制
router.post('/', function(req, res, next) {
    console.log(req.body.name);
    res.render('home2', { title: 'post' });
});

在控制台中,我只看到

代码语言:javascript
运行
复制
undefined

如何访问按钮的名称?

EN

回答 4

Stack Overflow用户

发布于 2015-11-14 07:38:39

我想这对你会有帮助的。

代码语言:javascript
运行
复制
<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' });
});
票数 2
EN

Stack Overflow用户

发布于 2015-11-14 08:39:41

首先,由于您使用的是POST,我假设您已经有了正文解析器中间件,如果没有,请检查Body Parser Middleware

您的代码需要做一些更改

在html中

代码语言:javascript
运行
复制
<form action="/home2" method="post">
    <button name="butt" value='1'>butt1</button>
    <button name="butt" value='2'>butt2</button>
</form>

并且在快递中

代码语言:javascript
运行
复制
router.post('/home2', function(req, res, next) {
    console.log(req.body.butt);
    res.render('home2', { title: 'post' });
});

req.body.name需要为req.body.butt

/需要为/home2

票数 2
EN

Stack Overflow用户

发布于 2015-11-14 07:28:20

您可以使用的一个技巧是将这两个按钮用作提交按钮:

代码语言:javascript
运行
复制
<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,这取决于所单击的按钮。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33703145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档