Форма onSubmit vs onClick

<form>
  <input />
  <button
    onClick = {e => {
      e.preventDefault();
      alert("clicked");
    }}
  >
    click
  </button>
</form>

Форма onSubmit vs onClick

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

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

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

потому что технически это отдельные события. Событие щелчка фиксирует событие щелчка мыши. Однако есть много способов отправить форму без щелчка. Из другого триггера JavaScript, с помощью возврата с клавиатуры и т. д., Поэтому они разные.

asp 24.05.2018 03:06

Если есть несколько кнопок или входов, onsubmit отправляет всю форму по умолчанию, а onclick может, но используется для более динамичных вещей, таких как слайды и тому подобное, но на самом деле это функция, которую вы пишете.

Jonny 24.05.2018 03:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
2
3 921
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

Другое главное отличие - цель мероприятия.

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

Другие вопросы по теме