Skip to content

Commit

Permalink
Fix #11145: Harden dispatch against a form-aliased "disabled" property
Browse files Browse the repository at this point in the history
  • Loading branch information
gibson042 authored and dmethvin committed Jan 12, 2012
1 parent b6a2dfb commit 77de76b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/event.js
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ jQuery.event = {


// Determine handlers that should run if there are delegated events // Determine handlers that should run if there are delegated events
// Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861) // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861)
if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) { if ( delegateCount && event.target.disabled !== true && !(event.button && event.type === "click") ) {


// Pregenerate a single jQuery object for reuse with .is() // Pregenerate a single jQuery object for reuse with .is()
jqcur = jQuery(this); jqcur = jQuery(this);
Expand Down
33 changes: 23 additions & 10 deletions test/unit/event.js
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -1213,25 +1213,38 @@ test("Delegated events in SVG (#10791)", function() {
svg.remove(); svg.remove();
}); });


test("Delegated events in forms (#10844)", function() { test("Delegated events in forms (#10844; #11145)", function() {
expect(1); expect(2);


// Aliases names like "id" cause havoc // Aliases names like "id" cause havoc
var form = jQuery( var form = jQuery(
'<form id="myform">'+ '<form id="myform">'+
'<input type="text" name="id" value="secret agent man" />'+ '<input type="text" name="id" value="secret agent man" />'+
'</form>' '</form>'
).appendTo( "body" ); )

.on( "submit", function( event ) {
jQuery( "body" ) event.preventDefault();
})
.appendTo("body");

jQuery("body")
.on( "submit", "#myform", function() {
ok( true, "delegated id selector with aliased id" );
})
.find("#myform")
.trigger("submit")
.end()
.off("submit");

form.append('<input type="text" name="disabled" value="differently abled" />');
jQuery("body")
.on( "submit", "#myform", function() { .on( "submit", "#myform", function() {
ok( true, "delegated id selector with aliased name" ); ok( true, "delegated id selector with aliased disabled" );
return false;
}) })
.find( "#myform" ) .find("#myform")
.trigger( "submit" ) .trigger("submit")
.end() .end()
.off( "submit" ); .off("submit");


form.remove(); form.remove();
}); });
Expand Down

0 comments on commit 77de76b

Please sign in to comment.