]> source.dussan.org Git - jquery.git/commitdiff
Fix #10208. Check for `button` as well as `input` when performing the #7071 VML crash... 489/head
authorDave Methvin <dave.methvin@gmail.com>
Wed, 7 Sep 2011 15:30:22 +0000 (11:30 -0400)
committerDave Methvin <dave.methvin@gmail.com>
Wed, 7 Sep 2011 15:30:22 +0000 (11:30 -0400)
src/event.js
test/unit/event.js

index 9ff6fae831f2523dcc4a10c91fff8dd379200f01..1161386fdd27a05d1ac14b3a8f4da180444c9b22 100644 (file)
@@ -702,8 +702,9 @@ if ( !jQuery.support.submitBubbles ) {
                setup: function( data, namespaces ) {
                        if ( !jQuery.nodeName( this, "form" ) ) {
                                jQuery.event.add(this, "click.specialSubmit", function( e ) {
+                                       // Avoid triggering error on non-existent type attribute in IE VML (#7071)
                                        var elem = e.target,
-                                               type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
+                                               type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
 
                                        if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
                                                trigger( "submit", this, arguments );
@@ -712,7 +713,7 @@ if ( !jQuery.support.submitBubbles ) {
 
                                jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
                                        var elem = e.target,
-                                               type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
+                                               type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
 
                                        if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
                                                trigger( "submit", this, arguments );
index 4e475da0667f673977a2cc8397f1c4b3c3d8761c..c69ba8339ab8b4f6414320052b93cdfd7729b0f0 100644 (file)
@@ -1633,7 +1633,7 @@ test("live with change", function(){
 });
 
 test("live with submit", function() {
-       expect(5);
+       expect(7);
 
        var count1 = 0, count2 = 0;
 
@@ -1659,6 +1659,10 @@ test("live with submit", function() {
        equals( count1, 2, "Verify form submit." );
        equals( count2, 2, "Verify body submit." );
 
+       jQuery("#testForm button[name=sub4]")[0].click();
+       equals( count1, 3, "Verify form submit." );
+       equals( count2, 3, "Verify body submit." );
+
        jQuery("#testForm").die("submit");
        jQuery("#testForm input[name=sub1]").die("click");
        jQuery("body").die("submit");