2015-11-13 24 views
5

私はnode.jsの基本を学び、フレームワークを表現しています。 私は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 

方法を参照してくださいボタンの名前にアクセスできますか?

+0

するreq.body.butt

/ニーズにする必要がありますか? http://stackoverflow.com/questions/28455284/how-to-know-which-submit-button-was-pressed-in-node-js –

+0

私がそれを得るならば、シャイアしないでください。だから私は1つのフォームで2つのボタンを使用することはできませんし、ちょうどそれらに書かれたものを読む? – wiwo

+1

あなたがあなたのボタンに "butt1"と "butt2"という名前を付けたので、私がこれを賞賛した理由の60%。 –

答えて

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> 

、あなたは今、クリックされたボタンに応じて、1または2としてbutton_idの値を取得する必要があります。

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' }); 
}); 
1

まず第一に、あなたはPOSTを使用しているので、私はチェックしませBody Parser Middleware

あなたのコードは、HTML

でいくつかの変更

を必要とする場合は、ボディパーサーミドルウェア存在を持っていると仮定しています

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

とExpressで

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

req.body.nameは、あなたがそれについてどう思います/home2

関連する問題