Существует новый подход HTML5 к этому, formaction
атрибут:
<button type="submit" formaction="/action_one">First action</button>
<button type="submit" formaction="/action_two">Second action</button>
По-видимому, это не работает в IE9 и более ранних версиях , но для других браузеров у вас все должно быть в порядке (см .: w3schools.com HTML <button> Атрибут formaction ).
Лично я обычно использую Javascript для удаленной отправки форм (для более быстрой обратной связи) с этим подходом в качестве резервного. Между двумя единственными людьми, которые не охвачены, являются IE <9 с отключенным Javascript.
Конечно, это может быть неуместно, если вы в основном выполняете одно и то же действие на стороне сервера, независимо от того, какая кнопка была нажата, но часто, если доступно два действия на стороне пользователя, они также сопоставляются с двумя действиями на стороне сервера.
Редактировать:
Как отметил Pascal_dher в комментариях, этот атрибут также доступен для <input>
тега.