2015-11-13 5 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% причин я поддержал это потому, что вы назвали ваши кнопки «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

Смежные вопросы