6

node.jsとexpressフレームワークの基礎を学んでいます。2 つのボタンがあるシンプルなページがあります。

<form action="/home2" method="post">
    <button name="butt1">butt1</button>
    <button name="butt2">butt2</button>
</form>

そして、どのボタンが押されたかをコンソールで確認したい:

router.post('/', function(req, res, next) {
    console.log(req.body.name);
    res.render('home2', { title: 'post' });
});

コンソールで私はちょうど見る

undefined

ボタンの名前にアクセスするにはどうすればよいですか?

4

4 に答える 4

2

お役に立てると思います。

<form action="/home2" method="post">
   <button name="butt1">butt1</button>
   <button name="butt2">butt2</button>
</form>


router.post('/home2', function(req, res, next) {

  if(req.body.hasOwnProperty("butt1")){
     console.log("butt1 clicked");
  }else{
     console.log("butt2 clicked");
  }
  res.render('home2', { title: 'post' });
});
于 2015-11-13T23:38:38.790 に答える
2

まず第一に、あなたは POST を使用しているので、body-parser ミドルウェアが存在することを前提としています

あなたのコードにはいくつかの変更が必要です

htmlで

<form action="/home2" method="post">
    <button name="butt" value='1'>butt1</button>
    <button name="butt" value='2'>butt2</button>
</form>

そして特急で

router.post('/home2', function(req, res, next) {
    console.log(req.body.butt);
    res.render('home2', { title: 'post' });
});

req.body.nameする必要がありますreq.body.butt

/する必要があります/home2

于 2015-11-14T00:39:40.937 に答える
1

使用できる 1 つのトリックは、2 つを送信ボタンとして使用することです。

<form action="/home2" method="post">
    <button name="button_id" value="1" type="submit">butt1</button>
    <button name="button_id" value="2" type="submit">butt2</button>
</form>

サーバー側では、button_idクリックされたボタンに応じて、1 または 2 の値を取得する必要があります。

于 2015-11-13T23:28:20.077 に答える