NodeJs / Express Get ID//按下提交按钮的名称

NodeJs / Express Get ID//name of submit button pressed

有没有办法获取我们按下的提交按钮的 ID/name?

我有一个 table,每列都有一个删除按钮。我想获取名称或 ID 以了解我需要删除哪一行

<form method="post" action="delete">
    <input type="submit" id="1" name="1" value="Delete">
    <input type="submit" id="2" name="2" value="Delete">
</form>

当我说我需要 id 或 name 时,我想要它在服务器端。

我试过这样的东西

app.post('/delete/:id', function(req, res) {

但是如何使用 :id 作为变量来使用它

使用req.params.id

请参考http://expressjs.com/en/api.html#req.params

顺便说一下,您的操作只是 "delete",它是一个带有提交按钮的表单 POST。所以它不会生成你需要的URL,也就是/delete/:id.

您需要使用一些客户端 JS 和点击事件动态生成 URL。

做一个隐藏的输入,然后在提交之前将 id 的值写入这个输入。 jQuery 示例:

jQuery(document).on('click', 'form > button', function(){
   jQuery('input[hidden]').val(jQuery(this).attr('id'));
});

我不认为名称值与元素 ID 具有相同的限制,但我会使用不以数字开头的更明确的名称。

标准方法是添加 express body-parser 作为中间件,然后数据将在 req.body.

中可用
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());

app.post('/delete/:id', function(req, res) {
  console.log(req.body.1);
});

如果你想根据id或name生成URL,那么我建议不要使用form。而是根据需要将所有输入包装在 div 或其他一些元素中,并仅针对该输入为所有输入提供公共 class ,如下所示。

<div>
    <input type="submit" class="myClass" id="1" name="1" value="Delete">
    <input type="submit" class="myClass" id="2" name="2" value="Delete">
</div>

然后在jquery你可以做以下事情

$('.myClass').click(function(){
   var url= "/delete/" + this.id;
   $.post(url, function(data) {
       ....
   });
});