Skip to content

preventDefault

preventDefault() cancels the browser’s default action for an event — like following a link or submitting a form.

// Prevent link navigation
document.querySelector('a').addEventListener('click', (e) => {
e.preventDefault();
console.log('Link clicked but navigation prevented');
});
// Prevent form submission (handle with JS instead)
form.addEventListener('submit', (e) => {
e.preventDefault(); // Don't reload the page
// Handle form with JavaScript
});
ScenarioDefault ActionpreventDefault
Link clickNavigate to hrefHandle navigation via JS (SPA)
Form submitReload pageSubmit via fetch/async
Right-clickContext menuCustom context menu
Key pressCharacter inputCustom input handling
// Warning: preventDefault has no effect on passive listeners
element.addEventListener('touchstart', handler, { passive: false });
// Set passive: false to allow preventDefault on touch/wheel events
  • preventDefault() cancels the browser’s default behavior
  • Does NOT stop event propagation (use stopPropagation() for that)
  • Works on links, forms, right-clicks, and key events
  • Set { passive: false } for touch/wheel events