Как отследить инициатора события submit из обработчика в javascript (на стороне клиента, без отправки формы)?

116
04 сентября 2019, 12:20

В форме используются несколько кнопок отправки с разными formaction. При нажатии кнопки возникает событие submit. Возможно ли из обработчика события (на стороне клиента, без отправки формы) выяснить, какая кнопка была нажата?

var form = document.querySelector('form'); 
form.addEventListener('submit', function(event) { 
  event.preventDefault(); 
  var formaction = '?'; 
  console.log(formaction); 
});
<form> 
  <button formaction="1">1</button> 
  <button formaction="2">2</button> 
</form>

UPD. Вопрос уточнен, т.к. был помечен как дубль.

UPD. Протестировал следующие варианты:

event.target - <form>
event.srcElement - <form>
event.currentTarget - <form>
event.originalTarget - undefined (FF <form>)
document.activeElement - <button> (Safari <body>)
event.explicitOriginalTarget - undefined (FF <button>)
Answer 1

У кнопок поставить type="button" и они не будет срабатывать как submit формы, дальше на них повесить события и тут уже варианты. Либо менять по клику action у формы и ее уже сабмитить, либо сразу отправлять ajax submit формы.

READ ALSO
Вызов функции fetch с параметрами

Вызов функции fetch с параметрами

Есть функция в контроллере с одним входным параметром:

91
jQuery Mask замена первой цифры телефона

jQuery Mask замена первой цифры телефона

Есть инпут, в который вводится номер телефонаНа инпут навешана маска:

115
Как я могу скачать картинку по url в папку через js или React

Как я могу скачать картинку по url в папку через js или React

У меня есть input поле, и я ввожу туда url картинки(например https://paygoogle

121
Декларация функции в цикле for

Декларация функции в цикле for

Является ли декларация функции в цикле for антипаттерном, ведущим к каким нибудь реальным негативным последствиям?

95