Browse Source

fix for remove function to delay execution on the end

Robin Herbots 13 years ago
parent
commit
7ce11b3e40
1 changed files with 35 additions and 33 deletions
  1. 35 33
      js/jquery.inputmask.js

+ 35 - 33
js/jquery.inputmask.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2012 Robin Herbots
 * Copyright (c) 2010 - 2012 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 1.0.13
+* Version: 1.0.14
 */
 */
 
 
 (function($) {
 (function($) {
@@ -98,38 +98,40 @@
                         var tests, _buffer;
                         var tests, _buffer;
                         return this.each(function() {
                         return this.each(function() {
                             var $input = $(this), input = this;
                             var $input = $(this), input = this;
-                            if ($input.data('inputmask')) {
-                                tests = $input.data('inputmask')['tests'];
-                                _buffer = $input.data('inputmask')['_buffer'];
-                                opts.greedy = $input.data('inputmask')['greedy'];
-                                opts.repeat = $input.data('inputmask')['repeat'];
-                                opts.definitions = $input.data('inputmask')['definitions'];
-                                //writeout the unmaskedvalue
-                                input._valueSet(unmaskedvalue($input, true));
-                                //clear data
-                                $input.removeData('inputmask');
-                                //unbind all events
-                                $input.unbind(".inputmask");
-                                $input.removeClass('focus.inputmask');
-                                //restore the value property
-                                if (Object.getOwnPropertyDescriptor)
-                                    var valueProperty = Object.getOwnPropertyDescriptor(input, "value");
-                                if (valueProperty && valueProperty.get) {
-                                    if (input._valueGet) {
-                                        Object.defineProperty(input, "value", {
-                                            get: input._valueGet,
-                                            set: input._valueSet
-                                        });
-                                    }
-                                } else if (document.__lookupGetter__ && input.__lookupGetter__("value")) {
-                                    if (input._valueGet) {
-                                        input.__defineGetter__("value", input._valueGet);
-                                        input.__defineSetter__("value", input._valueSet);
-                                    }
-                                }
-                                delete input._valueGet;
-                                delete input._valueSet;
-                            }
+                            setTimeout(function() {
+                            	if ($input.data('inputmask')) {
+                                	tests = $input.data('inputmask')['tests'];
+                                	_buffer = $input.data('inputmask')['_buffer'];
+                                	opts.greedy = $input.data('inputmask')['greedy'];
+                                	opts.repeat = $input.data('inputmask')['repeat'];
+                                	opts.definitions = $input.data('inputmask')['definitions'];
+                                	//writeout the unmaskedvalue
+                                	input._valueSet(unmaskedvalue($input, true));
+                                	//clear data
+                                	$input.removeData('inputmask');
+                                	//unbind all events
+                                	$input.unbind(".inputmask");
+                                	$input.removeClass('focus.inputmask');
+                                	//restore the value property
+                                	if (Object.getOwnPropertyDescriptor)
+                                    	var valueProperty = Object.getOwnPropertyDescriptor(input, "value");
+                                	if (valueProperty && valueProperty.get) {
+                                    	if (input._valueGet) {
+                                        	Object.defineProperty(input, "value", {
+                                           		get: input._valueGet,
+                                            	set: input._valueSet
+                                        	});
+                                    	}
+                                	} else if (document.__lookupGetter__ && input.__lookupGetter__("value")) {
+                                    	if (input._valueGet) {
+                                        	input.__defineGetter__("value", input._valueGet);
+                                        	input.__defineSetter__("value", input._valueSet);
+                                    	}
+                                	}
+                                	delete input._valueGet;
+                                	delete input._valueSet;
+                            	}
+                            }, 0);
                         });
                         });
                         break;
                         break;
                     case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation
                     case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation