2015-11-13 79 views
5

我在學習node.js的基礎知識並表達框架。 我有兩個按鈕,一個簡單的頁面:如何知道哪個按鈕被按下?

<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

你怎麼看呢? http://stackoverflow.com/questions/28455284/how-to-know-which-submit-button-was-pressed-in-node-js –

+0

如果我明白的話,不是希爾。所以我不能在一種形式中使用兩個按鈕,只是閱讀寫在它們上面的什麼? – wiwo

+1

60%的原因,我upvoted這是因爲你命名你的按鈕「butt1」和「butt2」。 –

回答

1

一個竅門是使用這兩個提交按鈕:

<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,取決於哪個按鈕被點擊。

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> 

和快速

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

req.body.name必須req.body.butt

/需求是/home2

相關問題