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) {
....
});
});
有没有办法获取我们按下的提交按钮的 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) {
....
});
});