PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое preventDefault?

DOM и браузер

`event.preventDefault()` — метод события, который отменяет действие браузера по умолчанию, но не останавливает всплытие события.

Что такое действие по умолчанию

Некоторые события вызывают встроенное поведение браузера:

  • клик по ссылке <a> → переход по href;
  • отправка формы <form> → перезагрузка страницы;
  • клик по чекбоксу → переключение;
  • contextmenu → системное меню.

preventDefault отменяет именно это поведение.

form.addEventListener('submit', (e) => {
  e.preventDefault(); // не перезагружать страницу
  sendFormViaAjax();
});

link.addEventListener('click', (e) => {
  e.preventDefault(); // не переходить по ссылке
});

preventDefault против stopPropagation

  • preventDefault — отменяет действие браузера, всплытие продолжается.
  • stopPropagation — останавливает распространение события, действие по умолчанию сохраняется.

Это независимые вещи; при необходимости вызывают оба.

Проверка

  • event.defaultPrevented — был ли вызван preventDefault.
  • Не все события отменяемы: event.cancelable === false означает, что preventDefault не сработает.

Коротко для собеседования

preventDefault отменяет стандартное поведение браузера (переход по ссылке, submit формы), но не влияет на всплытие. Отличается от stopPropagation, который останавливает распространение, но не действие по умолчанию.

Другие вопросы раздела