aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2012-03-04 21:11:50 -0500
committerDave Methvin <dave.methvin@gmail.com>2012-03-06 19:56:17 -0500
commit92a92be10f2c6eecc93e0def9001a2ef2852fde1 (patch)
tree0efe3572f9d5a034180caf4be48f7670b4401a46 /test
parent619f0d908a4227d4fd49971d7f9a5290eaffd72d (diff)
downloadjquery-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.js44
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 )