【问题标题】:How to find out which submit button was pressed in node js?如何找出节点js中按下了哪个提交按钮?
【发布时间】:2020-11-18 07:35:26
【问题描述】:

我的表单看起来像这样,现在控制器/管理员如何知道按下了哪个提交按钮?

   <form method="POST">
         <input type="submit" value="Add Admin" name="addAdmin">
         <input type="submit" value="All Employee List" name="allEmployeeList">
         <input type="submit" value="Update"  name="update">
         <input type="submit" value="Delete" name="delete">
         <a href="login">Login</a>
     </form>

我需要在 router.post 函数中编写什么条件来验证按下了哪个提交按钮?


router.post('/',(req,res)=>{
     

});

【问题讨论】:

    标签: html node.js forms express model-view-controller


    【解决方案1】:

    我假设您正在使用诸如 express 之类的中间件编写代码来处理路由和其他杂项工作。

    解决问题的最佳方法是使用bodyparser,它可以帮助您从正文中提取查询作为对象属性。

    您还想更改 HTML,以便使用 button 而不是 input 来提交。原因是您向服务器发送“命令”以执行操作。 imo 发送命令的最佳方式是发送一个命令对象,您可以在服务器端拦截该命令对象,然后从对象中提取命令。

    为此,您需要将input 提交按钮更改为button 提交按钮,然后在元素的name 字段中传入您希望使用的command name。在这个例子中,我使用命令名称作为“动作”,你可以选择任何你喜欢的。

    <button type="submit" value="allEmployeeList" name="action">List Employees</button>
    

    这会将有效负载发送为

    {
        action: allEmployeeList
    }
    

    然后您可以使用request.body.action 拉出“命令”,然后根据遇到的命令运行其他代码。

    这是一个可以帮助您的示例实现:https://codesandbox.io/s/exciting-surf-lud12?file=/src/index.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-03
      • 2012-10-02
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      相关资源
      最近更新 更多