Commit graph

2104 commits

Author SHA1 Message Date
jaubourg 6dbffb8596 Introduced a new promise method on deferreds that returns an immutable object (exposing then, fail, isResolved, isRejected and promise itself only). Remove $.isDeferred and moved logic directly into $.when. Made sure $.when returns a promise by using promise(). Used promise() in ajax code too. 2010-12-31 04:15:11 +01:00
jaubourg 6165cc45b7 Renamed several ajaxSettings options. Removed cors test, fixed failing cors test. 2010-12-31 04:15:09 +01:00
jaubourg 2a5c16f217 Revised logic in data conversion to account for when dataFilter modifies the dataTypes list. 2010-12-31 04:13:42 +01:00
jaubourg 981d1e08eb Removed re-usability from jXHR object (no more open, send & onreadystatechange support). Streamlined the implementation and put it back into ajax.js (removed xhr.js in the process). Went back to a more simple & direct approach to options handling (keeping much room to further minification-related optimizations). Code is cleaner, smaller & faster. Removed & edited unit tests accordingly. All build files have had xhr.js removed. 2010-12-31 04:13:40 +01:00
jaubourg 6f53be1839 Removed dataCheckers, added true as possible value for dataConverters indicating dataType equivalence (ie. no conversion has to be performed). 2010-12-31 04:05:58 +01:00
unknown 240d8b681e Removed custom method in isDeferred and when. 2010-12-31 04:05:56 +01:00
unknown 23d455b446 Deferred cannot be cancelled by returning false in a callback. Exception in the callback are still propagated and execution of remaining callbacks is still possible. 2010-12-31 04:05:55 +01:00
unknown fd63416ab1 Removed a console.log :/ 2010-12-31 04:05:54 +01:00
unknown 2d4001b82c Capitalized Deferred & _Deferred to clearly mark them as new types, like Event. 2010-12-31 04:05:53 +01:00
unknown 22e28b01e6 Changed dataConverters key format. 2010-12-31 04:05:52 +01:00
unknown 524bf39400 jQuery.parseXML extracted from ajax & added to core, needs unit testing. 2010-12-31 04:05:50 +01:00
jaubourg 5bfbe7eaf6 Removed NFE to make old Safari happy and avoid leaks in IE (as per David Murdoch's warning). 2010-12-31 04:05:49 +01:00
jaubourg d5bb001b9a Rewrote the data conversion logic in ajax. Should be cleaner and faster. 2010-12-31 04:05:48 +01:00
jaubourg e29ebbc199 Renamed jQuery.xhr.bindTransport as jQuery.xhr.transport. Generalized the implementation and made prefilters use the same logic. Cleaned up code and removed as many loops and each as possible. 2010-12-31 04:05:46 +01:00
jaubourg 2fec5dbecd Fixed a loop that only worked in webkit. 2010-12-31 04:02:33 +01:00
jaubourg 39d96ab8c5 Added deferred to core. Used internally for DOM readyness and ajax callbacks. 2010-12-31 04:01:39 +01:00
jaubourg 43828b7482 Removed NFE to make old Safari happy and avoid leaks in IE (as per David Murdoch's warning). 2010-12-31 03:56:11 +01:00
jaubourg fef0f63526 Rewrote the data conversion logic in ajax. Should be cleaner and faster. 2010-12-31 03:56:10 +01:00
jaubourg 4c49c87d4d Renamed jQuery.xhr.bindTransport as jQuery.xhr.transport. Generalized the implementation and made prefilters use the same logic. Cleaned up code and removed as many loops and each as possible. 2010-12-31 03:53:00 +01:00
jaubourg c072dbd4e2 Fixed a loop that only worked in webkit. 2010-12-31 03:49:23 +01:00
jaubourg 5bacb53866 Added deferred to core. Used internally for DOM readyness and ajax callbacks. 2010-12-31 03:49:22 +01:00
Colin Snover 4eeae8b0bc Remove patch for very early versions of Opera 9 that made it impossible to animate values smaller than -10000. Fixes #7193. Thanks to igorw for initial patch & test case. 2010-12-30 01:23:08 -06:00
Colin Snover 3e0cc81504 Clean trailing whitespace from all files. 2010-12-30 00:34:48 -06:00
Colin Snover 429b078dc7 Merge branch 'fix7762' into jquery master. Fixes #7762. 2010-12-30 00:02:56 -06:00
Colin Snover 9029dc02a2 Update CommonJS module registration to check to see if define is a function instead of just not undefined. 2010-12-29 23:58:03 -06:00
jaubourg dfa5707306 Fix for #7865. Scripts onload handler passes event as first parameter so statusText is now passed as second argument for aborts. 2010-12-30 04:41:52 +01:00
Dave Methvin c27d5ca6f5 By default, use document root rather than current selection's context when add()ing elements. Fixes #7853. 2010-12-28 21:07:04 -05:00
Dave Methvin 5fd21fc02b Don't cache non-html strings in buildFragment to avoid possible collision with the names of Object methods like toString. Also makes the unit tests 0.5% to 8% faster. Fixes #6779. 2010-12-27 13:43:52 -06:00
Dave Methvin 64ee5581af When a native browser event is bubbling up the DOM, make sure that the correct isDefaultPrevented value is reflected by jQuery's Event object. Fixes #7793. 2010-12-27 13:30:05 -06:00
jrburke 6ffa730721 Register as a CommonJS async module if in that kind of environment. Fixes #7102. 2010-12-27 13:03:27 -06:00
Colin Snover 01cba2ecaa Merge SlexAxton/jquery:master into jquery/jquery:master. 2010-12-26 22:12:56 -06:00
Alex Sexton faabb2c318 Changed the expando string to use a random number instead of the time, so collisions become less likely. Also added jQuery version to instantly differentiate separate versions of jQuery (a common use case for noConflict, etc, when two jQuery instances are on the page). Fixes #6842. 2010-12-26 22:07:46 -06:00
Ben Alman 78a6f5b152 Removed unnecessary upper/lowercase, it's all just lowercase now (since $.ajax will uppercase as-needed). 2010-12-26 22:49:01 +00:00
Colin Snover 37d297c67f Clearing event handlers on unload is no longer necessary in any version of IE. This issue causing memory leaks between pages was fixed in MS07-033. 2010-12-26 14:28:49 -06:00
Colin Snover a939ade9c6 Fix whitespace in event.js 2010-12-26 14:28:13 -06:00
Ben Alman 1830db4226 WETness getting you down? Fear not, the $.get and $.post methods are now 866% DRYer. This fixes #7847. 2010-12-26 18:52:27 +00:00
Colin Snover 52b1709b94 Fix reliableHiddenOffsets test was not working properly when table cells have borders, causing unnecessary slowness in some browsers. Thanks to matjas for his $.support test page. 2010-12-26 10:35:14 -06:00
Dave Methvin c9e8a95709 Simplify the check for isDefaultPrevented. 2010-12-24 09:53:39 -05:00
Dave Methvin 0b6afcedd2 When a native browser event is bubbling up the DOM, make sure that the correct isDefaultPrevented value is reflected by jQuery's Event object. Fixes #7793. 2010-12-23 19:59:23 -05:00
Colin Snover 1f92edee20 Fix fix for #6481 introduced at 7862c45ad2 which did not like it when Array.prototype was modified on empty arrays. 2010-12-22 18:54:22 -06:00
Colin Snover 82ac384b49 Don't use for-in loops on Arrays. Fixes #7817. Thanks to dmethvin.
Conflicts:
	src/manipulation.js
2010-12-22 18:32:33 -06:00
Colin Snover a2bf7ab3c0 Code style fix 2010-12-22 18:17:58 -06:00
Colin Snover e199ead4cb More unit tests and a $.hasData that works for JS objects too. 2010-12-22 15:03:01 -06:00
Colin Snover f5d4bf8920 Update jQuery.hasData to always return a boolean, with unit tests. 2010-12-22 14:54:37 -06:00
Colin Snover 445fdf720c Remove code for ticket #7717 which has been marked WONTFIX to match existing $.data functionality and to prevent infinite loops caused by circular references. 2010-12-22 14:43:17 -06:00
scottjehl 18fa1fd9da Getting window dimensions currently fails in Nokia browsers, causing JS error (and consequently making jQuery Mobile fail to render the page). Based on a tip from Ben Nolan, this fix returns window.screen[width|height] if the other attempts at getting window dimensions fail. On mobile at least, it seems to make sense, and on desktop (assuming this issue would ever show up on desktop), this might be better than returning false or undefined. 2010-12-22 15:24:07 -05:00
Colin Snover 5607bd8d53 Fix a potential error in the previous commit caused by the use of a separate index variable. Thanks to dmethvin for the review. 2010-12-22 09:14:53 -06:00
Dave Methvin acab4ab0e5 Use for loop instead of for/in loop to protect sanctity of Array.prototype. Fixes #7817. Test case for this commit is shared with the fix for #6355, https://github.com/jquery/jquery/pull/140 . 2010-12-21 10:00:49 -05:00
Dave Methvin 4424bda377 Use a for loop rather than for/in loop when copying events, so that code will work with an augmented Array.prototype. Fixes 7809. 2010-12-20 22:23:59 -05:00
Colin Snover faefbb1ad0 Fix #7717 and #7165. Thanks to dmethvin and iliakan for their help fixing these issues. 2010-12-19 15:33:53 -06:00
Colin Snover 291b1edf44 Address some code style issues in the clone fix. 2010-12-16 01:29:06 -06:00
Colin Snover efcf1a7921 Merge branch 'bug_7397' of https://github.com/rwldrn/jquery into rwldrn-bug_7397 2010-12-14 00:37:11 -06:00
Colin Snover c9c9057c4d More specific version numbers. 2010-12-12 20:01:47 -06:00
Colin Snover 1a3fd3329d Speed up & compatibility improvements for new clone mechanism in IE. 2010-12-12 19:23:22 -06:00
Colin Snover 4fae75d575 Merge branch 'bug5566' into csnover-bug5566. Fixes #4386, #5566, #6997.
Conflicts:
	src/manipulation.js
	test/unit/manipulation.js
2010-12-12 02:39:06 -06:00
Colin Snover 7481a3645a Fix the clone method to be a little less insane in IE, which fixes the new event-cloning clone() as well as probably a bunch of IE-related clone bugs. 2010-12-12 02:20:31 -06:00
jaubourg 9d3a4a2b40 Removed bind/unbind from xhr emulation: success/error/complete are deferred not events so these methods didn't really make sense in the first place. 2010-12-11 02:04:13 +01:00
jaubourg 2e129759b4 More variable renaming to avoid conflicts when module closures are removed. 2010-12-11 01:35:46 +01:00
jaubourg a500d33c5d Renamed variables to avoid conflicts when Makefile removes internal closures. 2010-12-10 04:16:56 +01:00
jaubourg ab74d8e6a0 Fix the closure in ajax.js too. 2010-12-10 03:16:50 +01:00
jaubourg 3c641bd134 Fixed function closures so that Makefile can do its magic. 2010-12-10 03:14:03 +01:00
jaubourg 9b9d270e3d Removed non-standard (and not that useful) xhr emulation methods & reworked the headers test as a consequence. 2010-12-10 02:45:08 +01:00
jaubourg ab3ba4a812 Rewrite of the Ajax module by Julian Aubourg. Some (dated) details can be found here: http://oksoclap.com/6Y26bm1ZsB more details are forthcoming. Fixes #7195. 2010-12-09 13:34:28 -05:00
jeresig 29616e60c8 Backing out cec68e2b00, was causing serialize tests to fail. Un-fixes #5566. 2010-12-09 13:27:52 -05:00
jeresig b4bb6e1126 Backing out fb6c038bf0, was causing jQuery.param tests to fail - unfixes #7413. 2010-12-09 13:07:44 -05:00
jeresig bc05cb9d80 Merge branch 'explain-map-concat' of https://github.com/ajpiano/jquery into ajpiano-explain-map-concat 2010-12-09 12:51:14 -05:00
rwldrn a59bb30d0a Whitespace correction 2010-12-09 12:50:01 -05:00
rwldrn 1cdd9f8cab Whitespace correction 2010-12-09 12:48:52 -05:00
rwldrn 5b2408147b Whitespace correction 2010-12-09 12:47:53 -05:00
rwldrn 00f1dfdd57 Reorders condition at L65 for efficiency 2010-12-09 12:44:52 -05:00
jeresig cec68e2b00 Merge branch 'bug5566' of https://github.com/csnover/jquery into csnover-bug5566 2010-12-09 12:44:30 -05:00
jeresig b2ea79c401 Merge branch 'attrFollowupFix' of https://github.com/jitter/jquery into jitter-attrFollowupFix 2010-12-09 12:43:10 -05:00
jeresig a13089d5b4 Merge branch 'rfxnum' of https://github.com/lrbabe/jquery into lrbabe-rfxnum 2010-12-09 12:37:30 -05:00
jeresig fb6c038bf0 Merge branch 'bug_7413' of https://github.com/rwldrn/jquery into rwldrn-bug_7413 2010-12-09 12:32:15 -05:00
louisremi 796d25cf07 Precising the unit part of rfxnum regex 2010-12-09 10:23:45 +01:00
Anton M cc9dbd06e5 Fix attr() problems in IE with attribute nodes. Followup to commit b50f41a2.
IE can't add properties on an attribute-node element, thus we handle it
like text-/comment-nodes.
2010-12-07 03:17:42 +01:00
Colin Snover e4900df838 Clone fragments in domManip using jQuery.clone instead of DocumentFragment.cloneNode in order to carry over event data. Fixes #5566, #6997. 2010-12-06 19:37:16 -06:00
Colin Snover c8be9461ee Clean up empty lines with whitespace in manipulation.js 2010-12-06 19:36:42 -06:00
John Resig 8943b427f6 Merge branch 'bug7524' of https://github.com/csnover/jquery into csnover-bug7524 2010-12-06 17:24:13 -05:00
John Resig 9759e9f6bb Merge branch 'bug6242' of https://github.com/csnover/jquery into csnover-bug6242 2010-12-06 17:23:08 -05:00
John Resig 6c68124928 Merge branch 'bug7531' of https://github.com/csnover/jquery into csnover-bug7531 2010-12-06 17:22:02 -05:00
John Resig b00ab56160 Merge branch 't6398' of https://github.com/jitter/jquery into jitter-t6398 2010-12-06 17:19:30 -05:00
John Resig 0276b9de7e Merge branch 't4386' of https://github.com/jitter/jquery into jitter-t4386 2010-12-06 17:14:20 -05:00
John Resig 54a68fa973 Merge branch 't7578' of https://github.com/jitter/jquery into jitter-t7578 2010-12-06 17:06:26 -05:00
John Resig df3441bac7 Merge branch 't5476' of https://github.com/jitter/jquery into jitter-t5476 2010-12-06 17:05:02 -05:00
John Resig d4a9d45527 Merge branch 'restrictAttr' of https://github.com/jitter/jquery into jitter-restrictAttr 2010-12-06 17:02:00 -05:00
John Resig e56d6f676b Merge branch 't7673' of https://github.com/jitter/jquery into jitter-t7673 2010-12-06 16:57:41 -05:00
Colin Snover 11e52bdaea Only try to get data attributes for a jQuery-wrapped object if it is actually an Element node. Fixes #7524. 2010-12-03 01:19:39 -06:00
Colin Snover 238ac5a0aa Fix memory leaks in IE caused by the custom abort function of $.ajax. Fixes bug #6242. 2010-12-03 00:12:52 -06:00
Anton M df0a3fb853 Handle carriage return characters in className property. Fixes #7673. 2010-12-01 21:31:22 +01:00
adam j. sontag 34bf1a2a7d Add a comment explaining that jQuery.map flattens arrays 2010-11-27 17:15:33 -05:00
Russell Holbrook 50170e6180 jQuery.fn.offset no longer returns ClientRect object for disconnected elements
Instead of returning box, which is a ClientRect, we take the top and left box
values and place them into a generic object.
2010-11-22 18:26:46 -05:00
danheberden 3e6e3c5eb8 Fix for #6911 - prevent disabled elements in liveHandler 2010-11-21 16:54:56 -08:00
Anton M 89b771daef Make sure custom events named "submit" can be bound to non DOM elements in IE too. Fixes 6398. 2010-11-21 04:31:04 +01:00
Anton M ab2a70e6cf Make sure IE clones body elements correctly. Fixes 4386. 2010-11-21 01:58:46 +01:00
Anton M 8259efe734 Set cache to false as default for script or json requests. Fixes 7578. 2010-11-19 23:14:24 +01:00
Anton M 5c0b5d2560 Improve performance of get() for negative indices. Fixes #5476. 2010-11-19 12:28:13 +01:00
Colin Snover c04500a834 Optimize for size instead of speed. 2010-11-17 14:50:05 -06:00
Colin Snover 2a0c7d702b Coerce s.url to string before calling replace, since replace is also a method of a Location object. Fixes #7531. 2010-11-17 00:59:24 -06:00
Anton M b50f41a2e3 Make sure attr() works on non DOM element nodes. Fixes #7202, #7451, #7500.
Also added some tests for this attr(name), attr(name, value) and removeAttr(name).
2010-11-13 14:39:28 +01:00
jeresig 86cf820d36 Backing out commit 795e880bba - errors popping up in IE 6/7/8. 2010-11-09 23:42:05 -05:00
jeresig efaf375e56 Need to also handle the case where 'auto' is being returned, as in Firefox. Follow-up to #7395. 2010-11-09 23:33:18 -05:00
jeresig 3394d32ea7 Maintain returning 0px from width/height for disconnected nodes for backwards compat, for now. Fixes #7395. 2010-11-09 23:29:26 -05:00
rwldrn 795e880bba Fixes #7397; Adds 4 supporting unit tests. 2010-11-09 23:18:16 -05:00
Anton M 49f088f2db Partially revert commit a64dc04050.
Removing the conditional was too liberal as now attr() would even work
on plain javascript objects. Keeping a check to make sure it is at least
a DOM Node is appropriate. Using nodeName as in the commit which introduced
the nodeType === 1 check seems plausible.
2010-11-10 00:36:53 +01:00
rwldrn 8f2667f4c0 Clean #7397; Removed unnec. var declaration 2010-11-09 18:20:27 -05:00
rwldrn 118c8c4600 Fixes #7397; 4 supporting unit tests 2010-11-09 18:06:33 -05:00
rwldrn fc563cc42a Fixes #7413; isEmptyObject() check to see if obj passes isPlainObject 2010-11-09 16:14:11 -05:00
Colin Snover a64dc04050 Remove conditional that prevents attr from working on non-Element nodes. Fixes #7451. 2010-11-09 15:52:20 -05:00
John Resig 983548f8eb Make sure that if an additional load event is triggered (such as an iframe being dynamically injected in DOM ready) the ready event isn't triggered twice. Fixes #7352. 2010-11-09 13:44:06 -05:00
John Resig aa74396976 Merge branch 'bug7422' of https://github.com/csnover/jquery into csnover-bug7422 2010-11-09 12:40:55 -05:00
John Resig fb48ae8e6c Make sure that when multiple variables are being declared that assignments are each done on their own line. 2010-11-09 11:09:07 -05:00
John Resig b5b3c73db3 We don't do end of line comments, move them above. 2010-11-09 10:34:32 -05:00
Colin Snover e57b73a0ac Ensure that AJAX requests are actually aborted in all browsers. Fix #7422. 2010-11-06 13:52:30 -05:00
jeresig d9478954b9 Limit the scope of the CSS 'auto' change to just height/width. Fixes #7393. 2010-11-03 18:59:55 -04:00
jeresig fb4445070c Opera doesn't give height/width of display: none elements with getComputedStyle but does with currentStyle - fall back to that if it exists. 2010-11-03 15:39:28 -04:00
jeresig 9d1bfeb7ff Make sure that accessing computed CSS for elements returns 'auto' instead of '' consistently. Fixes #7337. 2010-11-01 19:04:59 -04:00
John Resig e377621eaf Fix quotes in comment. 2010-10-28 15:59:58 -04:00
jeresig 6e7a4e73a2 Calling .hide().show() on a stylesheet-hidden element wasn't bringing it back. Fixes #7331. 2010-10-27 14:35:26 -04:00
Karl Swedberg 6ab402dced For .show() with no arguments, only set display of elements in the second loop if they don't have style.display already set or if style.display isn't none. Fixes #7315. 2010-10-26 14:37:44 -07:00
John Resig 7066bb384b Temporarily backing out commit bd474799bf. 2010-10-25 20:26:19 -07:00
John Resig a68a85ad09 Merge branch 'jquery_dev' of http://github.com/danheberden/jquery into danheberden-jquery_dev 2010-10-25 20:25:25 -07:00
John Resig de58db0cdf Backing out fix for #5803 from 3b50eaca2c. 2010-10-25 17:54:27 -07:00
danheberden bd474799bf Prevent IE from firing live/delegate events on disabled elements. (#6911) 2010-10-25 14:07:44 -07:00
John Resig a4fc842019 Merge branch 'jquerymaster' of http://github.com/SlexAxton/jquery into SlexAxton-jquerymaster 2010-10-25 13:06:55 -07:00
John Resig 7e4f88e206 Merge branch '6897' of http://github.com/SlexAxton/jquery into SlexAxton-6897 2010-10-25 13:06:23 -07:00
dmethvin 09022e0b09 Allow DELETE requests to have a content body, and properly serialize data to the url for HEAD requests. Fixes #7285. 2010-10-25 13:06:02 -07:00
dmethvin 974b5aeab7 Honor stopImmediatePropagation for live/delegate event handlers. Fixes #7217. 2010-10-25 13:05:31 -07:00
John Resig ee845c4975 Merge branch 'master' of http://github.com/rwldrn/jquery 2010-10-25 13:05:11 -07:00
John Resig 36143ce633 Merge branch 'unusedTrue' of http://github.com/lrbabe/jquery into lrbabe-unusedTrue 2010-10-25 12:36:40 -07:00
lrbabe 1a2400de08 .cur() doesn't take any boolean parameter since 1.4.3 2010-10-25 17:19:45 +02:00
Alex Sexton 086822e641 Moved jQuery.props to attributes since it was only used in support. Fixes #6897 - suggestion by dmethvin 2010-10-25 02:31:19 -05:00
rwldrn 3b50eaca2c Fixes #7229 and #5803 2010-10-24 12:18:33 -04:00
jeresig 53396b879b Make sure that .width()/.height() don't return NaN also standardize on returning instead of auto for default values (which is what we do elsewhere in .css() as well). Fixes #7225. 2010-10-22 02:39:06 -04:00
jeresig 7e02cee5ff Make sure that the correct height/width of the elements is retreived. Fixes #7225. 2010-10-22 02:16:14 -04:00
jeresig d9a3e0080a Fix broken selector code from last commit. 2010-10-22 01:48:32 -04:00
jeresig 424500bcf0 Make sure that +, >, ~ leading, rooted, selectors go to the old engine. Thanks to @rkatic for the catch! Fixes #7220. 2010-10-22 01:18:58 -04:00
jeresig e4a38670b1 Make sure that height/width getters work on hidden inputs and disconnected elements. Fixes #7225. 2010-10-22 00:28:33 -04:00
jeresig 3df41db036 Make sure that the ready event doesn't double-fire when .bind(ready) is used. Fixes #7247. 2010-10-22 00:08:34 -04:00
jeresig 0174518a49 Only need to declare the data once. 2010-10-21 23:18:47 -04:00
Alex Sexton a58f8f22d1 Forces lower case comparison of protocol and host when determining whether the request is remote or local. Fixes #6908 2010-10-20 21:12:47 -07:00
Paul Irish 97dfa0d5a8 fadeToggle(). as suggested by Karl Swedberg in his jQcon talk. patched live! omg 2010-10-17 14:26:32 -04:00
John Resig 8a5df39045 Make sure that .data() (no args) returns a list of all the data- properties as well. Also make sure that accessing a data- property via .data() doesn't cause it to change again at a later time (it should be static). Fixes #7222, #7223. 2010-10-17 11:42:53 -04:00
John Resig a7d0b0b9e8 Var wasn't being explicitly declared. Fixes #7226. 2010-10-17 10:58:01 -04:00
John Resig e1b940d748 We removed deleteExpando after 1.4.2, for some reason. This caused problems with removeData() (no arguments). Fixes #7209. 2010-10-17 10:56:01 -04:00
John Resig 497fc9849e Bringing back the change from 80a4178af9, adapted to handle both the function collision and the issue mentioned in #7196. 2010-10-15 01:29:38 -04:00
jeresig 80a4178af9 Reverting commit 39addc87a3 after a report of problems. Fixes #7196. 2010-10-14 20:55:40 -04:00
John Resig ea507b3e99 Make sure that we don't attempt to handle scrolling when the node is disconnected from the document. Fixes #7190. 2010-10-14 14:52:31 -04:00
jeresig d490bcfa7c Oops, still have jQuery.ajax.* on the brain. 2010-10-13 21:25:23 -04:00
Justin Meyer f3d610e064 beforedeactivate will fire before focusout - use that to our advantage when working with the change event. 2010-10-13 10:38:29 -04:00