2015-11-13 29 views
5

node.js'nin temellerini öğreniyorum ve çerçeveyi ifade ediyorum. İki düğmeli basit bir sayfa var:Hangi düğmeye basıldığını nasıl öğrenebilirim?

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

Ve düğmesine basıldığında hangi konsolda görmek istiyorum: Ben sadece görmek konsolunda

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

undefined 

nasıl düğmenin adına erişebilir miyim? gönderme düğmeleri gibi kullanabilirsiniz

+0

olmak req.body.butt

/ ihtiyacı olması gerekiyor? http://stackoverflow.com/questions/28455284/how-to-know-which-submit-button-was-pressed-in-node-js –

+0

Bunu elde edersem patlamaz. Bu yüzden iki düğmeyi bir formda kullanamıyorum ve sadece üzerlerinde yazılanları okuyamıyorum? – wiwo

+1

Bunun nedeninin% 60'ının nedeni, "butt1" ve "butt2" düğmelerinin adlandırılmasıdır. –

cevap

1

Bir hüner iki kullanmaktır:

<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> 

Sunucu tarafında, artık tıklandığı düğmesine bağlı olarak 1 veya 2 olarak button_id değerini almalısınız.

2

Bunun sizin için yararlı olacağını düşünüyorum.

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

Önce i vücut ayrıştırıcı katman hediyem var varsayıyorum POST kullanıyorsanız beri değilse kodunuzu html

birkaç değişiklik

ihtiyacı Body Parser Middleware

kontrol

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

ve ekspres içinde

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

req.body.name Bu konuda ne düşünüyorsunuz /home2

İlgili konular