diff options
author | Dave Methvin <dave.methvin@gmail.com> | 2012-03-04 21:11:50 -0500 |
---|---|---|
committer | Dave Methvin <dave.methvin@gmail.com> | 2012-03-06 19:56:17 -0500 |
commit | 92a92be10f2c6eecc93e0def9001a2ef2852fde1 (patch) | |
tree | 0efe3572f9d5a034180caf4be48f7670b4401a46 /test | |
parent | 619f0d908a4227d4fd49971d7f9a5290eaffd72d (diff) | |
download | jquery-92a92be10f2c6eecc93e0def9001a2ef2852fde1.tar.gz jquery-92a92be10f2c6eecc93e0def9001a2ef2852fde1.zip |
Fix #11049. Let bubbling submit be cancellable in oldIE.
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/event.js | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/test/unit/event.js b/test/unit/event.js index dd4bbd55d..3c9a08109 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -1216,10 +1216,10 @@ test("Delegated events in SVG (#10791)", function() { test("Delegated events in forms (#10844; #11145; #8165)", function() { expect(3); - // Aliases names like "id" cause havoc + // Alias names like "id" cause havoc var form = jQuery( '<form id="myform">'+ - '<input type="text" name="id" value="secret agent man" />'+ + '<input type="text" name="id" value="secret agent man" />'+ '</form>' ) .on( "submit", function( event ) { @@ -1259,6 +1259,44 @@ test("Delegated events in forms (#10844; #11145; #8165)", function() { form.remove(); }); +test("Submit event can be stopped (#11049)", function() { + expect(1); + + // Since we manually bubble in IE, make sure inner handlers get a chance to cancel + var form = jQuery( + '<form id="myform">'+ + '<input type="text" name="sue" value="bawls" />'+ + '<input type="submit" />'+ + '</form>' + ) + .appendTo("body"); + + jQuery( "body" ) + .on( "submit", function() { + ok( true, "submit bubbled on first handler" ); + return false; + }) + .find( "#myform input[type=submit]" ) + .each( function(){ this.click(); } ) + .end() + .on( "submit", function() { + ok( false, "submit bubbled on second handler" ); + return false; + }) + .find( "#myform input[type=submit]" ) + .each( function(){ + jQuery( this.form ).on( "submit", function( e ) { + e.preventDefault(); + e.stopPropagation(); + }); + this.click(); + }) + .end() + .off( "submit" ); + + form.remove(); +}); + test("jQuery.Event( type, props )", function() { expect(5); @@ -2664,7 +2702,7 @@ test("clone() delegated events (#11076)", function() { clicked = function( event ) { counter[ jQuery(this).text().replace(/\s+/, "") ]++; }, - table = + table = jQuery( "<table><tr><td>center</td><td>fold</td></tr></table>" ) .on( "click", "tr", clicked ) .on( "click", "td:first-child", clicked ) |