2015-11-13 17 views
5

Sto imparando le basi di node.js e framework espresso. Ho una semplice pagina con due pulsanti:Come sapere quale pulsante è stato premuto?

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

E voglio vedere in console che è stato premuto il tasto:

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

Nella console vedo solo

undefined 

Come posso accedere al nome del pulsante?

+0

Cosa ne pensi a riguardo? http://stackoverflow.com/questions/28455284/how-to-know-which-submit-button-was-pressed-in-node-js –

+0

Non shire se ottengo quello. Quindi non posso usare due pulsanti in una forma e solo leggere cosa è scritto su di essi? – wiwo

+1

Il 60% del motivo per cui ho svitato questo è stato perché hai chiamato i tuoi pulsanti "butt1" e "butt2". –

risposta

1

Un trucco è possibile utilizzare è quello di utilizzare i due come bottoni di invio:

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

Sul lato server, si dovrebbe ora ottenere valore button_id come 1 o 2, a seconda di quale pulsante è stato cliccato.

2

Penso che sarebbe utile per voi.

<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

Prima di tutto dal momento che si sta utilizzando POST Io parto dal presupposto che hai il corpo-parser middleware presente, se non controlla Body Parser Middleware

il codice ha bisogno di alcuni cambiamenti

in html

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

e in veloce

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

req.body.name deve essere req.body.butt

/ necessità di essere /home2