Browse Source

fix iE11 with placeholder

Robin Herbots 11 years ago
parent
commit
0496699800

+ 1 - 0
.gitignore

@@ -1,2 +1,3 @@
 InputMask
 test.html
+jquery-1.10.2.js

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
     "name": "jquery.inputmask",
-    "version": "3.0.45",
+    "version": "3.0.46",
     "main": "./dist/jquery.inputmask.bundle.js",
 	"keywords" : ["jQuery", "plugins", "input", "form", "inputmask", "mask"],
 	"description": "jquery.inputmask is a jquery plugin which create an input mask.",

+ 1 - 1
build.properties

@@ -7,7 +7,7 @@ distdir = dist
 
 build.major = 3
 build.minor = 0
-build.revision = 45
+build.revision = 46
 
 target = jquery.inputmask.bundle.js
 target.min = jquery.inputmask.bundle.min.js

BIN
dist/jQuery.InputMask.3.0.45.nupkg


BIN
dist/jQuery.InputMask.3.0.46.nupkg


+ 30 - 24
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2014 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.0.45
+* Version: 3.0.46
 */
 
 (function ($) {
@@ -1359,21 +1359,23 @@
                             }
                         }
                     }).bind("click.inputmask", function () {
-                        var input = this;
-                        setTimeout(function () {
-                            var selectedCaret = caret(input), buffer = getBuffer();
-                            if (selectedCaret.begin == selectedCaret.end) {
-                                var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
-                                    lvp = getLastValidPosition(clickPosition),
-                                    lastPosition = seekNext(lvp);
-                                if (clickPosition < lastPosition) {
-                                    if (isMask(clickPosition))
-                                        caret(input, clickPosition);
-                                    else caret(input, seekNext(clickPosition));
-                                } else
-                                    caret(input, lastPosition);
-                            }
-                        }, 0);
+                        var input = this;
+                        if ($(input).is(":focus")) {
+                            setTimeout(function() {
+                                var selectedCaret = caret(input), buffer = getBuffer();
+                                if (selectedCaret.begin == selectedCaret.end) {
+                                    var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
+                                        lvp = getLastValidPosition(clickPosition),
+                                        lastPosition = seekNext(lvp);
+                                    if (clickPosition < lastPosition) {
+                                        if (isMask(clickPosition))
+                                            caret(input, clickPosition);
+                                        else caret(input, seekNext(clickPosition));
+                                    } else
+                                        caret(input, lastPosition);
+                                }
+                            }, 0);
+                        }
                     }).bind('dblclick.inputmask', function () {
                         var input = this;
                         setTimeout(function () {
@@ -1479,8 +1481,12 @@
                             isRTL = true;
                         }
                         var valueBuffer = actionObj["value"].split('');
-                        checkVal($el, false, true, isRTL ? valueBuffer.reverse() : valueBuffer);
-                        return isComplete(getBuffer());
+                        checkVal($el, false, true, isRTL ? valueBuffer.reverse() : valueBuffer);
+                        var buffer = getBuffer();
+                        var rl = determineLastRequiredPosition();
+                        buffer.length = rl;
+
+                        return isComplete(buffer) && actionObj["value"] == buffer.join('');
                     case "getemptymask":
                         $el = $(actionObj["el"]);
                         maskset = $el.data('_inputmask')['maskset'];
@@ -1720,7 +1726,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2014 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.0.45
+* Version: 3.0.46
 */
 
 (function ($) {
@@ -2083,7 +2089,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2014 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 3.0.45
+Version: 3.0.46
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2204,7 +2210,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2014 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 3.0.45
+Version: 3.0.46
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2667,7 +2673,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2014 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 3.0.45
+Version: 3.0.46
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2902,7 +2908,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2014 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 3.0.45
+Version: 3.0.46
 
 Regex extensions on the jquery.inputmask base
 Allows for using regular expressions as a mask
@@ -3089,7 +3095,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2014 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 3.0.45
+Version: 3.0.46
 
 Phone extension.
 When using this extension make sure you specify the correct url to get the masks

File diff suppressed because it is too large
+ 52 - 51
dist/jquery.inputmask.bundle.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/jquery.inputmask-multi.js


File diff suppressed because it is too large
+ 55 - 54
dist/min/jquery.inputmask.js


File diff suppressed because it is too large
+ 0 - 9789
jquery-1.10.2.js


+ 1 - 1
jquery.inputmask.jquery.json

@@ -8,7 +8,7 @@
 		"inputmask",
 		"mask"
     ],
-    "version": "3.0.45",
+    "version": "3.0.46",
     "author": {
         "name": "Robin Herbots",
         "url": "http://github.com/RobinHerbots/jquery.inputmask"

+ 21 - 15
js/jquery.inputmask.js

@@ -1360,20 +1360,22 @@
                         }
                     }).bind("click.inputmask", function () {
                         var input = this;
-                        setTimeout(function () {
-                            var selectedCaret = caret(input), buffer = getBuffer();
-                            if (selectedCaret.begin == selectedCaret.end) {
-                                var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
-                                    lvp = getLastValidPosition(clickPosition),
-                                    lastPosition = seekNext(lvp);
-                                if (clickPosition < lastPosition) {
-                                    if (isMask(clickPosition))
-                                        caret(input, clickPosition);
-                                    else caret(input, seekNext(clickPosition));
-                                } else
-                                    caret(input, lastPosition);
-                            }
-                        }, 0);
+                        if ($(input).is(":focus")) {
+                            setTimeout(function() {
+                                var selectedCaret = caret(input), buffer = getBuffer();
+                                if (selectedCaret.begin == selectedCaret.end) {
+                                    var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
+                                        lvp = getLastValidPosition(clickPosition),
+                                        lastPosition = seekNext(lvp);
+                                    if (clickPosition < lastPosition) {
+                                        if (isMask(clickPosition))
+                                            caret(input, clickPosition);
+                                        else caret(input, seekNext(clickPosition));
+                                    } else
+                                        caret(input, lastPosition);
+                                }
+                            }, 0);
+                        }
                     }).bind('dblclick.inputmask', function () {
                         var input = this;
                         setTimeout(function () {
@@ -1480,7 +1482,11 @@
                         }
                         var valueBuffer = actionObj["value"].split('');
                         checkVal($el, false, true, isRTL ? valueBuffer.reverse() : valueBuffer);
-                        return isComplete(getBuffer());
+                        var buffer = getBuffer();
+                        var rl = determineLastRequiredPosition();
+                        buffer.length = rl;
+
+                        return isComplete(buffer) && actionObj["value"] == buffer.join('');
                     case "getemptymask":
                         $el = $(actionObj["el"]);
                         maskset = $el.data('_inputmask')['maskset'];