Короткий ответ
event.preventDefault() отменяет действие браузера по умолчанию для этого события — при этом всплытие само по себе не останавливает.
form.addEventListener("submit", (e) => {
e.preventDefault();
sendViaFetch(form);
});
link.addEventListener("click", (e) => {
e.preventDefault();
openModal();
});
Типичные default-действия
| Событие | Default |
|---|
submit | отправка формы / навигация |
click по <a href> | переход |
keydown в input | ввод символа |
contextmenu | контекстное меню |
| drag/drop | браузерный DnD |
password.addEventListener("keydown", (e) => {
if (e.key === "Enter") e.preventDefault();
});
vs stopPropagation
preventDefault — «не делай браузерное действие».
stopPropagation — «не неси событие дальше по DOM».
Часто нужны по отдельности.
Итог: preventDefault блокирует штатное поведение браузера, оставляя вам контроль в JS.