ソースを参照

fix remove on blur #475

Robin Herbots 11 年 前
コミット
823335c437

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
     "name": "jquery.inputmask",
-    "version": "3.0.12",
+    "version": "3.0.13",
     "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 = 12
+build.revision = 13
 
 target = jquery.inputmask.bundle.js
 target.min = jquery.inputmask.bundle.min.js

BIN
dist/jQuery.InputMask.3.0.12.nupkg


BIN
dist/jQuery.InputMask.3.0.13.nupkg


+ 55 - 49
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.12
+* Version: 3.0.13
 */
 
 (function ($) {
@@ -1229,27 +1229,30 @@
                             }
                         }
                     }).bind("blur.inputmask", function () {
-                        var $input = $(this), input = this, nptValue = input._valueGet(), buffer = getBuffer();
-                        $input.removeClass('focus.inputmask');
-                        if (valueOnFocus != getBuffer().join('')) {
-                            $input.change();
-                        }
-                        if (opts.clearMaskOnLostFocus && nptValue != '') {
-                            if (nptValue == getBufferTemplate().join(''))
-                                input._valueSet('');
-                            else { //clearout optional tail of the mask
-                                clearOptionalTail(input);
+                        var $input = $(this), input = this;
+                        if ($input.data('_inputmask')) {
+                            var nptValue = input._valueGet(), buffer = getBuffer();
+                            $input.removeClass('focus.inputmask');
+                            if (valueOnFocus != getBuffer().join('')) {
+                                $input.change();
                             }
-                        }
-                        if (isComplete(buffer) === false) {
-                            $input.trigger("incomplete");
-                            if (opts.clearIncomplete) {
-                                resetMaskSet();
-                                if (opts.clearMaskOnLostFocus)
+                            if (opts.clearMaskOnLostFocus && nptValue != '') {
+                                if (nptValue == getBufferTemplate().join(''))
                                     input._valueSet('');
-                                else {
-                                    buffer = getBufferTemplate().slice();
-                                    writeBuffer(input, buffer);
+                                else { //clearout optional tail of the mask
+                                    clearOptionalTail(input);
+                                }
+                            }
+                            if (isComplete(buffer) === false) {
+                                $input.trigger("incomplete");
+                                if (opts.clearIncomplete) {
+                                    resetMaskSet();
+                                    if (opts.clearMaskOnLostFocus)
+                                        input._valueSet('');
+                                    else {
+                                        buffer = getBufferTemplate().slice();
+                                        writeBuffer(input, buffer);
+                                    }
                                 }
                             }
                         }
@@ -1493,30 +1496,33 @@
                 return pos;
             }
             function determineActiveMask(eventType, elmasks) {
+
                 if (eventType != "multiMaskScope") {
-                    var lpc = -1, cp = -1, lvp = -1;;
-                    $.each(elmasks, function (ndx, lmsk) {
-                        var data = $(lmsk).data('_inputmask');
-                        var maskset = data["maskset"];
-                        var lastValidPosition = -1, validPositionCount = 0, caretPos = mcaret(lmsk).begin;
-                        for (var posNdx in maskset["validPositions"]) {
-                            var psNdx = parseInt(posNdx);
-                            if (psNdx > lastValidPosition) lastValidPosition = psNdx;
-                            validPositionCount++;
-                        }
-                        if (validPositionCount > lpc
-                            || (validPositionCount == lpc && cp > caretPos && lvp > lastValidPosition)
-                            || (validPositionCount == lpc && cp == caretPos && lvp < lastValidPosition)
+                    if ($.isFunction(opts.determineActiveMasksetIndex))
+                        activeMasksetIndex = opts.determineActiveMasksetIndex.call($el, eventType, elmasks);
+                    else {
+                        var lpc = -1, cp = -1, lvp = -1;;
+                        $.each(elmasks, function (ndx, lmsk) {
+                            var data = $(lmsk).data('_inputmask');
+                            var maskset = data["maskset"];
+                            var lastValidPosition = -1, validPositionCount = 0, caretPos = mcaret(lmsk).begin;
+                            for (var posNdx in maskset["validPositions"]) {
+                                var psNdx = parseInt(posNdx);
+                                if (psNdx > lastValidPosition) lastValidPosition = psNdx;
+                                validPositionCount++;
+                            }
+                            if (validPositionCount > lpc
+                                    || (validPositionCount == lpc && cp > caretPos && lvp > lastValidPosition)
+                                    || (validPositionCount == lpc && cp == caretPos && lvp < lastValidPosition)
                             ) {
-                            //console.log("lvp " + lastValidPosition + " vpc " + validPositionCount + " caret " + caretPos + " ams " + ndx);
-                            lpc = validPositionCount;
-                            cp = caretPos;
-                            activeMasksetIndex = ndx;
-                            lvp = lastValidPosition;
-                        }
-                    });
-
-                    if ($.isFunction(opts.determineActiveMasksetIndex)) activeMasksetIndex = opts.determineActiveMasksetIndex.call($el, eventType, elmasks);
+                                //console.log("lvp " + lastValidPosition + " vpc " + validPositionCount + " caret " + caretPos + " ams " + ndx);
+                                lpc = validPositionCount;
+                                cp = caretPos;
+                                activeMasksetIndex = ndx;
+                                lvp = lastValidPosition;
+                            }
+                        });
+                    }
 
                     var data = $el.data('_inputmask-multi') || { "activeMasksetIndex": 0, "elmasks": elmasks };
                     data["activeMasksetIndex"] = activeMasksetIndex;
@@ -1751,11 +1757,11 @@
                                 opts = $input.data('_inputmask')['opts'];
                                 //writeout the unmaskedvalue
                                 input._valueSet(maskScope(maskset, opts, { "action": "unmaskedvalue", "$input": $input, "skipDatepickerCheck": true }));
-                                //clear data
-                                $input.removeData('_inputmask');
                                 //unbind all events
                                 $input.unbind(".inputmask");
                                 $input.removeClass('focus.inputmask');
+                                //clear data
+                                $input.removeData('_inputmask');
                                 //restore the value property
                                 var valueProperty;
                                 if (Object.getOwnPropertyDescriptor)
@@ -1859,7 +1865,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.12
+Version: 3.0.13
 
 Optional extensions on the jquery.inputmask base
 */
@@ -1969,7 +1975,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.12
+Version: 3.0.13
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2432,7 +2438,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.12
+Version: 3.0.13
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2591,7 +2597,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.12
+Version: 3.0.13
 
 Regex extensions on the jquery.inputmask base
 Allows for using regular expressions as a mask
@@ -2778,7 +2784,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.12
+Version: 3.0.13
 
 Phone extension.
 When using this extension make sure you specify the correct url to get the masks

ファイルの差分が大きいため隠しています
+ 24 - 24
dist/jquery.inputmask.bundle.min.js


ファイルの差分が大きいため隠しています
+ 45 - 45
dist/min/jquery.inputmask.js


+ 1 - 1
jquery.inputmask.jquery.json

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

+ 49 - 43
js/jquery.inputmask.js

@@ -1229,27 +1229,30 @@
                             }
                         }
                     }).bind("blur.inputmask", function () {
-                        var $input = $(this), input = this, nptValue = input._valueGet(), buffer = getBuffer();
-                        $input.removeClass('focus.inputmask');
-                        if (valueOnFocus != getBuffer().join('')) {
-                            $input.change();
-                        }
-                        if (opts.clearMaskOnLostFocus && nptValue != '') {
-                            if (nptValue == getBufferTemplate().join(''))
-                                input._valueSet('');
-                            else { //clearout optional tail of the mask
-                                clearOptionalTail(input);
+                        var $input = $(this), input = this;
+                        if ($input.data('_inputmask')) {
+                            var nptValue = input._valueGet(), buffer = getBuffer();
+                            $input.removeClass('focus.inputmask');
+                            if (valueOnFocus != getBuffer().join('')) {
+                                $input.change();
                             }
-                        }
-                        if (isComplete(buffer) === false) {
-                            $input.trigger("incomplete");
-                            if (opts.clearIncomplete) {
-                                resetMaskSet();
-                                if (opts.clearMaskOnLostFocus)
+                            if (opts.clearMaskOnLostFocus && nptValue != '') {
+                                if (nptValue == getBufferTemplate().join(''))
                                     input._valueSet('');
-                                else {
-                                    buffer = getBufferTemplate().slice();
-                                    writeBuffer(input, buffer);
+                                else { //clearout optional tail of the mask
+                                    clearOptionalTail(input);
+                                }
+                            }
+                            if (isComplete(buffer) === false) {
+                                $input.trigger("incomplete");
+                                if (opts.clearIncomplete) {
+                                    resetMaskSet();
+                                    if (opts.clearMaskOnLostFocus)
+                                        input._valueSet('');
+                                    else {
+                                        buffer = getBufferTemplate().slice();
+                                        writeBuffer(input, buffer);
+                                    }
                                 }
                             }
                         }
@@ -1493,30 +1496,33 @@
                 return pos;
             }
             function determineActiveMask(eventType, elmasks) {
+
                 if (eventType != "multiMaskScope") {
-                    var lpc = -1, cp = -1, lvp = -1;;
-                    $.each(elmasks, function (ndx, lmsk) {
-                        var data = $(lmsk).data('_inputmask');
-                        var maskset = data["maskset"];
-                        var lastValidPosition = -1, validPositionCount = 0, caretPos = mcaret(lmsk).begin;
-                        for (var posNdx in maskset["validPositions"]) {
-                            var psNdx = parseInt(posNdx);
-                            if (psNdx > lastValidPosition) lastValidPosition = psNdx;
-                            validPositionCount++;
-                        }
-                        if (validPositionCount > lpc
-                            || (validPositionCount == lpc && cp > caretPos && lvp > lastValidPosition)
-                            || (validPositionCount == lpc && cp == caretPos && lvp < lastValidPosition)
+                    if ($.isFunction(opts.determineActiveMasksetIndex))
+                        activeMasksetIndex = opts.determineActiveMasksetIndex.call($el, eventType, elmasks);
+                    else {
+                        var lpc = -1, cp = -1, lvp = -1;;
+                        $.each(elmasks, function (ndx, lmsk) {
+                            var data = $(lmsk).data('_inputmask');
+                            var maskset = data["maskset"];
+                            var lastValidPosition = -1, validPositionCount = 0, caretPos = mcaret(lmsk).begin;
+                            for (var posNdx in maskset["validPositions"]) {
+                                var psNdx = parseInt(posNdx);
+                                if (psNdx > lastValidPosition) lastValidPosition = psNdx;
+                                validPositionCount++;
+                            }
+                            if (validPositionCount > lpc
+                                    || (validPositionCount == lpc && cp > caretPos && lvp > lastValidPosition)
+                                    || (validPositionCount == lpc && cp == caretPos && lvp < lastValidPosition)
                             ) {
-                            //console.log("lvp " + lastValidPosition + " vpc " + validPositionCount + " caret " + caretPos + " ams " + ndx);
-                            lpc = validPositionCount;
-                            cp = caretPos;
-                            activeMasksetIndex = ndx;
-                            lvp = lastValidPosition;
-                        }
-                    });
-
-                    if ($.isFunction(opts.determineActiveMasksetIndex)) activeMasksetIndex = opts.determineActiveMasksetIndex.call($el, eventType, elmasks);
+                                //console.log("lvp " + lastValidPosition + " vpc " + validPositionCount + " caret " + caretPos + " ams " + ndx);
+                                lpc = validPositionCount;
+                                cp = caretPos;
+                                activeMasksetIndex = ndx;
+                                lvp = lastValidPosition;
+                            }
+                        });
+                    }
 
                     var data = $el.data('_inputmask-multi') || { "activeMasksetIndex": 0, "elmasks": elmasks };
                     data["activeMasksetIndex"] = activeMasksetIndex;
@@ -1751,11 +1757,11 @@
                                 opts = $input.data('_inputmask')['opts'];
                                 //writeout the unmaskedvalue
                                 input._valueSet(maskScope(maskset, opts, { "action": "unmaskedvalue", "$input": $input, "skipDatepickerCheck": true }));
-                                //clear data
-                                $input.removeData('_inputmask');
                                 //unbind all events
                                 $input.unbind(".inputmask");
                                 $input.removeClass('focus.inputmask');
+                                //clear data
+                                $input.removeData('_inputmask');
                                 //restore the value property
                                 var valueProperty;
                                 if (Object.getOwnPropertyDescriptor)