Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fix #10844. Harden quickIs() against form-aliasing of the id property.
- Loading branch information
Showing
with
26 additions
and
2 deletions.
-
+3
−2
src/event.js
-
+23
−0
test/unit/event.js
|
@@ -18,10 +18,11 @@ var rformElems = /^(?:textarea|input|select)$/i, |
|
|
return quick; |
|
|
}, |
|
|
quickIs = function( elem, m ) { |
|
|
var attrs = elem.attributes || {}; |
|
|
return ( |
|
|
(!m[1] || elem.nodeName.toLowerCase() === m[1]) && |
|
|
(!m[2] || elem.id === m[2]) && |
|
|
(!m[3] || m[3].test( ((elem.attributes || {})[ "class" ] || {}).value )) |
|
|
(!m[2] || (attrs.id || {}).value === m[2]) && |
|
|
(!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) |
|
|
); |
|
|
}, |
|
|
hoverHack = function( events ) { |
|
|
|
@@ -1209,6 +1209,29 @@ test("Delegated events in SVG (#10791)", function() { |
|
|
svg.remove(); |
|
|
}); |
|
|
|
|
|
test("Delegated events in forms (#10844)", function() { |
|
|
expect(1); |
|
|
|
|
|
// Aliases names like "id" cause havoc |
|
|
var form = jQuery( |
|
|
'<form id="myform">'+ |
|
|
'<input type="text" name="id" value="secret agent man" />'+ |
|
|
'</form>' |
|
|
).appendTo( "body" ); |
|
|
|
|
|
jQuery( "body" ) |
|
|
.on( "submit", "#myform", function() { |
|
|
ok( true, "delegated id selector with aliased name" ); |
|
|
return false; |
|
|
}) |
|
|
.find( "#myform" ) |
|
|
.trigger( "submit" ) |
|
|
.end() |
|
|
.off( "submit" ); |
|
|
|
|
|
form.remove(); |
|
|
}); |
|
|
|
|
|
test("jQuery.Event( type, props )", function() { |
|
|
|
|
|
expect(5); |
|
|