aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2011-08-16 15:40:09 -0400
committertimmywil <timmywillisn@gmail.com>2011-09-19 15:42:31 -0400
commit8a6bbc70d07e78d0ff84f174d0d17c11a743e2c9 (patch)
tree1ce94b445088fb47c17175a8ee658e3e6c1de269
parentbd55f905a0e53c58ae4c3db8cb17c7db25d58459 (diff)
downloadjquery-8a6bbc70d07e78d0ff84f174d0d17c11a743e2c9.tar.gz
jquery-8a6bbc70d07e78d0ff84f174d0d17c11a743e2c9.zip
Remove redundancy in the IE special submit handler.
-rw-r--r--src/event.js19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/event.js b/src/event.js
index 7f5e30775..81a66c37f 100644
--- a/src/event.js
+++ b/src/event.js
@@ -32,7 +32,7 @@ var rnamespaces = /\.(.*)$/,
(!m[4] || elem.getAttribute( m[4] ) == m[5]) &&
(!m[6] || !elem[ m[6] ])
);
- }
+ };
function useNativeMethod( event ) {
if ( !event.isDefaultPrevented() && this[ event.type ] ) {
@@ -730,25 +730,18 @@ if ( !jQuery.support.submitBubbles ) {
jQuery.event.special.submit = {
setup: function() {
+ // Only need this for delegated form submit events
if ( jQuery.nodeName( this, "form" ) ) {
return false;
}
- jQuery.event.add(this, "click._submit", function( e ) {
- var elem = e.target,
- type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
- trigger( "submit", this, arguments );
- if ( (type === "submit" || type === "image") && elem.form ) {
- simulate( "submit", this, e );
- }
- });
-
- jQuery.event.add(this, "keypress._submit", function( e ) {
+ jQuery.event.add(this, "click._submit keypress._submit", function( e ) {
var elem = e.target,
type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
- if ( (type === "text" || type === "password") && elem.form && e.keyCode === 13 ) {
+ // Do the elem.form check after type to avoid VML-related crash in IE (#TODO)
+ if ( (e.type === "click" && (type === "submit" || type === "image") && elem.form) ||
+ (e.type === "keypress" && e.keyCode === 13 && (type === "text" || type === "password") && elem.form) ) {
simulate( "submit", this, e );
}
});