Как получить данные с кнопки в форме? - PullRequest
0 голосов
/ 20 марта 2020

Это кажется очень простым, но я не могу понять это. Я пытаюсь вернуть значение кнопки, чтобы я мог условно отобразить шаблон страницы. Я не могу понять значение кнопки, хотя. Вот мой js код.

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


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

А вот моя html / e js разметка:

<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, что будет отображать нужный шаблон (или я так надеюсь!). Может кто-нибудь помочь ??

Ответы [ 2 ]

1 голос
/ 20 марта 2020

methods не является допустимым атрибутом элемента <form>

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

Итак, первое, что нужно сделать, это заменить methods на method и установить только один метод (я бы предложил 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")
});
0 голосов
/ 20 марта 2020

вы можете использовать атрибут данных, чтобы взять его

 <button type="submit"id="x" name="frontpage_trades_button" data-value="enable">Activate Campaigns</button>

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


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