Форма onSubmit против onClick - PullRequest
0 голосов
/ 24 мая 2018
<form>
  <input />
  <button
    onClick={e => {
      e.preventDefault();
      alert("clicked");
    }}
  >
    click
  </button>
</form>

Edit zrzz6pj7kx

Если переместить обработчик onClick в form s onSubmit, я получу точноетакое же поведение

В большинстве ответов, которые я гуглил, предполагается, что разница в onClick не будет реагировать на отправку формы с помощью нажатия клавиши return, но это не так, как показано в примере кода и коробки.

Когда онивести себя по-другому, кроме как при работе с DOM-манипуляциями / имитацией событий?

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Другое основное отличие - цель события.

Note that the submit event fires on the <form> element itself, and not on any <button> or <input type="submit"> inside it. (Forms are submitted, not buttons.)

https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event

0 голосов
/ 24 мая 2018

По сути, это зависит от браузера.Некоторые браузеры могут вызывать кнопку отправки onClick, когда форма отправляется нажатием клавиши возврата, но стандарт этого не требует.Другие могут вызывать onClick только когда нажата кнопка возврата , если выбрана кнопка отправки .Другие могут не запускать его, если кнопка не нажата вручную.

Если вы хотите наилучшую мобильность, используйте onSubmit для того, для чего он предназначен: для обнаружения отправки формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...