javascript - 如何从表单中的按钮接收数据?

标签 javascript node.js express ejs

这看起来很简单,但我无法弄清楚。我正在尝试取回按钮的值,以便我可以有条件地呈现页面模板。但我似乎无法捕捉按钮的值(value)。 这是我的 js 代码。

app.get("/trades", (req, res) => {  // line 465
 let button_value = req.params.value;
  console.log(button_value);


  // res.render("activate_pause")
});

这是我的 html/ejs 标记:

<form action="/trades" methods="get, post" name="groups_button">
    <button class="orange" type="submit" name="frontpage_trades_button" value="pause">Pause Campaigns</button>
    <button type="submit" name="frontpage_trades_button" value="enable">Activate Campaigns</button>
</form>

值“pause”或“enable”将用于设置 true 或 false 状态,这将呈现所需的模板(或者我希望如此!)。谁能帮忙吗?

最佳答案

methods不是 <form> 的有效属性元素

console.log('Is method in <form>?: ', 'method' in HTMLFormElement.prototype);
console.log('Is methods in <form>?: ', 'methods' in HTMLFormElement.prototype);

所以首先要做的就是替换methodsmethod并仅设置一种方法(我建议 POST )。

然后在 Node.js 代码中,确保您有正确的中间件来解码 URL 编码形式:

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));

这应该允许您检索单击的按钮的值,如下所示:

app.post("/trades", (req, res) => { 
 let button_value = req.body.frontpage_trades_button;
  console.log(button_value);


  // res.render("activate_pause")
});

关于javascript - 如何从表单中的按钮接收数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60765092/

相关文章:

node.js - Express/node.js 路由器中的通配符

javascript - jQuery Ajax 请求在未发送的情况下被取消

javascript - PrototypeJS 版本 1.6.0.2 覆盖 JSON.parse 和 JSON.stringify 并破坏 socket.io 功能

javascript - Node js 没有正确返回函数的值

javascript - 我将如何使用 Socket-IO 上传图像文件?

javascript - 像 Rails 一样,在 Node.js (node-orm) 中链接模型关系

javascript - 如何从 getElementsByClassName 获取选定的索引

javascript - 日期范围选择器 - 24 小时范围选择

javascript - Chart.js 仅在 Rails 应用程序刷新时显示

node.js - 用于捕获错误处理的快速 Controller