event.isDefaultPrevented() returns whether event.preventDefault() was called on this event. This tutorial covers the official link demo, blocking navigation and form submit, coordinating multiple handlers, return false, and comparing with native defaultPrevented.
01
Method
isDefaultPrevented()
02
Returns
Boolean
03
Official
false → true
04
preventDefault
Sets flag
05
Handlers
Multi-listener
06
Since 1.3
No arguments
Fundamentals
Introduction
Many events have a default browser action — links navigate, forms submit, checkboxes toggle. Calling event.preventDefault() cancels that action. But how does a later handler know cancellation already happened? Call event.isDefaultPrevented().
jQuery has exposed this check since version 1.3 on its normalized event object. The official demo alerts false, calls preventDefault(), then alerts true — proving the flag flips when default action is blocked.
Concept
Understanding event.isDefaultPrevented()
This method answers one question: was default action cancelled on this event?
Before preventDefault — event.isDefaultPrevented() returns false.
After preventDefault — returns true for the rest of that event dispatch.
Read-only — takes no arguments; does not change state.
Multiple handlers — a later handler can branch on the flag set by an earlier one.
💡
Beginner Tip
Call preventDefault() to block navigation or submit. Call isDefaultPrevented() to check whether someone already blocked it — useful when several handlers share one click or submit event.
Foundation
📝 Syntax
Official jQuery API form (since 1.3):
jQuery
event.isDefaultPrevented()
// typical pattern:
$( "a" ).on( "click", function ( event ) {
if ( !event.isDefaultPrevented() ) {
// default not cancelled yet
}
event.preventDefault();
if ( event.isDefaultPrevented() ) {
// now true
}
});
Parameters
None — this method does not accept any arguments.
Return value
Boolean — true if event.preventDefault() was called on this event object; otherwise false.
First alert: false
Second alert: true (after preventDefault)
Link does not navigate
How It Works
preventDefault() sets an internal flag on the event object. isDefaultPrevented() reads that flag — the official demo proves the transition from false to true in one handler.
Example 2 — SPA Link: prevent navigation, confirm in UI
Block default navigation and show a message when default was prevented.
before: false
(after first handler return false — propagation may stop; pattern shows preventDefault effect when handlers both run on same element order permitting)
How It Works
return false is jQuery sugar for preventDefault() plus stopPropagation(). Prefer explicit calls in new code; know that either way isDefaultPrevented() reflects cancellation.
Applications
🚀 Common Use Cases
Debug handlers — log isDefaultPrevented() after custom logic runs.
AJAX forms — confirm submit was prevented before sending XHR.
Link interceptors — skip fallback when another plugin already prevented navigation.
Validation plugins — invalid field handlers call preventDefault(); analytics handlers check the flag.
Testing — assert isDefaultPrevented() after simulating clicks in Try-it labs.
Library cooperation — avoid double preventDefault when integrating third-party code.
🧠 How isDefaultPrevented() Works
1
Event fires
User clicks link or submits form — jQuery creates a normalized event object; flag starts false.
Start
2
Handler runs
isDefaultPrevented() returns false until something cancels default.
Check
3
preventDefault()
Handler (or return false) sets the flag — browser default will not run.
Cancel
4
✓
Flag stays true
Later handlers read isDefaultPrevented() === true for the same dispatch.
Important
📝 Notes
Available since jQuery 1.3 — returns a Boolean.
Takes no arguments — read-only query method.
Reports whether preventDefault() was ever called on this event object.
Does not report propagation state — use isPropagationStopped() for that.
return false in jQuery handlers also sets default prevented.
Native defaultPrevented property exists on modern events; jQuery wraps consistently.
Compatibility
Browser Support
event.isDefaultPrevented() is part of jQuery’s normalized event object since jQuery 1.3+. It mirrors the native default-prevented flag across browsers jQuery supports, including environments where reading defaultPrevented directly was inconsistent.
✓ jQuery 1.3+ · all browsers
jQuery event.isDefaultPrevented()
Check whether default action was cancelled.
100%Universal
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
isDefaultPrevented()Boolean
Bottom line: Call preventDefault() to cancel — call isDefaultPrevented() to verify.
Wrap Up
Conclusion
event.isDefaultPrevented() tells you whether default action was cancelled on the current event dispatch. The official demo shows it flip from false to true immediately after preventDefault().
Use it when multiple handlers share one event and later code must respect earlier cancellation — especially with links, forms, and plugin combinations.
Call event.preventDefault() explicitly in new code
Check isDefaultPrevented() before fallback navigation logic
Use on submit handlers before AJAX replacement
Log the flag while debugging multi-handler bugs
Pair with preventDefault() — one cancels, one verifies
❌ Don’t
Call isDefaultPrevented() expecting to reset the flag
Confuse with isPropagationStopped()
Assume false after you called preventDefault()
Rely on return false without knowing it also stops propagation
Skip preventDefault and only check the flag — you must cancel first
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about isDefaultPrevented()
Read whether default was cancelled.
5
Core concepts
?01
isDefaultPrevented
Boolean check
API
stop02
preventDefault
Sets true
Pair
demo03
Official
false → true
Demo
form04
Submit
AJAX forms
Use
RF05
return false
Also cancels
Note
❓ Frequently Asked Questions
event.isDefaultPrevented() returns true if event.preventDefault() was called on this event object at any point during handler execution, and false otherwise. It is a read-only check — you cannot pass arguments. Available since jQuery 1.3.
Use it when multiple handlers run on the same event and a later handler needs to know whether an earlier one already cancelled the default action — for example, skipping fallback navigation when a link click was already prevented.
In jQuery handlers, return false calls both preventDefault() and stopPropagation(). After return false, isDefaultPrevented() returns true. Prefer explicit event.preventDefault() in modern code for clarity.
Native events expose a defaultPrevented property (read-only boolean). jQuery provides isDefaultPrevented() as a method that wraps the same idea on its normalized event object for consistency across browsers, including older ones jQuery supported.
No. isDefaultPrevented() only reports state — it does not reset the flag. Once preventDefault() runs, the default action stays cancelled for that event dispatch.
isDefaultPrevented() reports whether the browser default action was cancelled (link navigation, form submit). isPropagationStopped() reports whether stopPropagation() was called to halt bubbling. They track different event flags.
Did you know?
jQuery added isDefaultPrevented() and isPropagationStopped() together in version 1.3 so handler code could inspect event state without reaching into browser-specific properties. Modern native events expose defaultPrevented, but jQuery’s method keeps tutorial and legacy code consistent.