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

时间:2017-10-17 12:37:09

标签: javascript node.js express form-submit

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

我在每列上都有一个删除按钮的表。我想获取名称或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或名字时,我想要服务器端。

我试过这样的事情

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

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

4 个答案:

答案 0 :(得分:1)

使用req.params.id

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

顺便说一句,你的行动只是说&#34;删除&#34;它是一个带有提交按钮的表格POST。因此它不会生成您需要的URL,即/ delete /:id。

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

答案 1 :(得分:0)

创建一个隐藏的输入,在提交之前,将id的值写入此输入。 jQuery示例:

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

答案 2 :(得分:0)

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

标准方法是将快速body-parser添加为middlware,然后数据将在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);
});

答案 3 :(得分:0)

如果您想根据ID或名称生成URL,那么我建议不要使用表单。而是根据需要将所有输入包含在div或其他元素中,并为所有输入提供一个公共类,如下所示。

<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) {
       ....
   });
});