The defaultPrevented property is a read-only boolean on every Event: true if preventDefault() canceled the default action, false if it did not. Learn how it pairs with cancelable, MDN’s link logging pattern, and dispatchEvent—with five examples and try-it labs.
01
Kind
Instance property
02
Type
boolean (read-only)
03
Means
Default was blocked?
04
Set by
preventDefault()
05
Needs
cancelable true
06
Status
Baseline widely
Fundamentals
Introduction
Calling event.preventDefault() asks the browser not to run its normal action (follow a link, submit a form, and so on). event.defaultPrevented is how you check whether that cancel actually stuck.
Other listeners—often higher in the tree—can read the flag to react differently. MDN’s demo logs “Visiting link…” vs “you cannot visit” based on this property.
💡
Beginner tip
defaultPrevented only becomes true when preventDefault() succeeds. That requires event.cancelable === true. Calling preventDefault() on a non-cancelable event does not flip the flag.
Concept
Understanding Event.defaultPrevented
An instance property that answers: “Did preventDefault() cancel this event’s default action?”
Value — true if prevented; false otherwise.
Read-only — you do not assign to it; preventDefault() updates it.
Depends on cancelable — non-cancelable events stay false.
Not stopPropagation — stopping bubble does not set this flag.
Baseline Widely available on MDN (since July 2015); also in Web Workers.
Foundation
📝 Syntax
JavaScript
event.defaultPrevented
Value
A boolean: true if the default user agent action was prevented, false if it was not.
Typical pattern
JavaScript
link.addEventListener("click", (event) => {
if (event.cancelable) {
event.preventDefault();
}
console.log(event.defaultPrevented); // true when cancel worked
});
Compare
⚖️ defaultPrevented vs Related Ideas
Idea
Meaning
event.defaultPrevented
Did preventDefault() succeed?
event.cancelable
Is canceling allowed for this event?
preventDefault()
Request that the default action not run
stopPropagation()
Stop DOM travel—does not set defaultPrevented
dispatchEvent() return
false if a cancelable event was prevented
Cheat Sheet
⚡ Quick Reference
Goal
Code / note
Read
event.defaultPrevented
Make it true
event.preventDefault() on a cancelable event
Check first
if (event.cancelable) event.preventDefault()
After dispatch
dispatchEvent(evt) === false when prevented
MDN status
Baseline Widely available (since July 2015)
Snapshot
🔍 At a Glance
Four facts to remember about Event.defaultPrevented.
Event.defaultPrevented is marked Baseline Widely available on MDN (since July 2015). Logos use the shared browser-image-sprite.png sprite from this project. It is also available in Web Workers.
✓ Baseline · Widely available
Event.defaultPrevented
Read-only boolean: true if preventDefault() canceled the event’s default action.
UniversalWidely available
Google ChromeFull support · Desktop & Mobile
Full support
Mozilla FirefoxFull support · Desktop & Mobile
Full support
Apple SafariFull support · macOS & iOS
Full support
Microsoft EdgeFull support · Chromium
Full support
OperaFull support · Modern versions
Full support
Internet ExplorerSupported (legacy)
Full support
Event.defaultPreventedExcellent
Bottom line: Call preventDefault on cancelable events, then read defaultPrevented (or dispatchEvent’s return) to confirm.
Wrap Up
Conclusion
Event.defaultPrevented reports whether preventDefault() successfully blocked the default action. Pair it with cancelable, and use it in later listeners or after dispatchEvent to react to cancels.
Check cancelable before preventDefault() in shared handlers
Read defaultPrevented in later / parent listeners
Use { cancelable: true } for cancelable custom events
Check dispatchEvent’s boolean return when useful
Keep cancel reasons clear in UI (validation messages)
❌ Don’t
Assign event.defaultPrevented = true yourself
Expect non-cancelable events to flip the flag
Confuse stopPropagation with preventing defaults
Assume every click cancel is visible without reading the flag
Skip testing form / link defaults after cancel
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about defaultPrevented
The yes/no after a successful preventDefault.
5
Core concepts
🚫01
Boolean
read-only
API
✅02
true
default blocked
Meaning
🛡️03
Needs
cancelable
Rule
📈04
Observe
later listeners
Pattern
🎯05
Baseline
since Jul 2015
Status
❓ Frequently Asked Questions
It is a read-only boolean on an Event. It is true if Event.preventDefault() successfully canceled the event’s default action, and false otherwise.
No. MDN marks Event.defaultPrevented as Baseline Widely available (since July 2015). It is not Deprecated, Experimental, or Non-standard. It is also available in Web Workers.
preventDefault() only works when event.cancelable is true. If the event is not cancelable, calling preventDefault() does not set defaultPrevented to true.
In a later listener (for example on document) to see if an earlier handler already canceled the default—useful for logging, analytics, or shared click handlers.
No. stopPropagation stops further travel through the DOM. defaultPrevented only reflects preventDefault() canceling the browser default action.
For a cancelable event, target.dispatchEvent(event) returns false if preventDefault() was called during dispatch (defaultPrevented is true). It returns true if the default was not prevented.
Did you know?
If event.defaultPrevented is true, later listeners can still run (unless someone stopped propagation). The flag only talks about the default action, not about whether more JavaScript handlers will fire.