【问题标题】:When i click on submit button in client no action went to the node JS?当我单击客户端中的提交按钮时,节点 JS 没有任何操作?
【发布时间】:2018-10-29 13:05:42
【问题描述】:

我是 Node JS 的新手,并且坚持使用 http GET 和 POST 方法。我无法使用提交按钮从节点 JS 回调。

server.js

app.get('/admin', function(req, resp) {
  session = req.session;
  if (session.uniqueID != 'admin') {
    resp.send('Unauthorized acess');
  }
  resp.sendFile('/.html', {
    root: __dirname
  });
});


app.post('/admin', function(req, resp) {
  resp.setHeader('Content-Type', 'application/json');
  e.preventDefult();
  console.log('admin');

});

home.html

<body>
  <div class="loginBox">
    <img src="user.png" class="user">
    <h2>Docker</h2>
    <form id="tableForm">
      <select>
        <optgroup label="Select docker commands here">
          <option name="" value="0" />
          <option name="table1" value="1">docker start</option>
          <option name="table2" value="2">docker build</option>
          <option name="table3" value="3">docker run</option>
          <option name="table3" value="3">docker pull</option>
          <option name="table3" value="3">docker stop</option>
        </optgroup>
      </select><br>
      <input type="button" value="submit" /></a>
    </form>
  </div>
</body>

当我点击提交按钮选择主页下拉列表时,我想返回管理员发布方法。

有人有想法吗?

【问题讨论】:

    标签: html node.js express


    【解决方案1】:

    在服务器文件中您没有e.preventDefult();。因此,只需记录您的消息并添加其余代码。另外/.html 不是您使用的正确文件。

    app.get('/admin', function(req, resp) {
      session = req.session;
      if (session.uniqueID != 'admin') {
        resp.send('Unauthorized acess');
      }
      resp.sendFile('/.html', {
        root: __dirname
      });
    });
    
    
    app.post('/admin', function(req, resp) {
      console.log('admin');
    });
    

    并在 html 文件中添加 action="/admin" method="POST" 到您的表单,提交后请求发送到服务器。

    <body>
      <div class="loginBox">
        <img src="user.png" class="user">
        <h2>Docker</h2>
        <form action="/admin" method="POST" id="tableForm">
          <select>
            <optgroup label="Select docker commands here">
              <option name="" value="0" />
              <option name="table1" value="1">docker start</option>
              <option name="table2" value="2">docker build</option>
              <option name="table3" value="3">docker run</option>
              <option name="table3" value="3">docker pull</option>
              <option name="table3" value="3">docker stop</option>
            </optgroup>
          </select><br>
          <input type="button" value="submit" /></a>
        </form>
      </div>
    </body>
    

    【讨论】:

    • 您的回答没有描述。您只需在 html 中编写更改。 OP的代码在服务器端也有一些问题。我不 DV 你的答案@SanjaySinghBhandari
    • @Saeed 它在单个按钮中工作,但在下拉列表中不起作用你知道吗?
    • 您必须使用submit 按钮将请求发送到服务器。在 codepen 或 plunker 中提供您的代码以帮助 @maniR
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多