浏览代码

alias options from data-inputmask is not used anymore fix #1113

Robin Herbots 10 年之前
父节点
当前提交
fefcadf628

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.5-0",
+  "version": "3.2.5-1",
   "main": [
     "./dist/inputmask/inputmask.js"
   ],

+ 1 - 1
component.json

@@ -2,7 +2,7 @@
   "name": "jquery_inputmask",
   "repository": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.5-0",
+  "version": "3.2.5-1",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "main": "./dist/jquery.inputmask.bundle.js",
   "scripts": [

+ 1 - 1
composer.json

@@ -1,7 +1,7 @@
 {
   "name": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.5-0",
+  "version": "3.2.5-1",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/jquery.inputmask",

+ 1 - 1
dist/inputmask/inputmask.date.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/inputmask.dependencyLib.jquery.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);

+ 1 - 1
dist/inputmask/inputmask.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);

+ 18 - 15
dist/inputmask/inputmask.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery")) : factory(window.dependencyLib || jQuery);
@@ -40,23 +40,26 @@
             "mask" === option && 0 === optionData.indexOf("[") ? (userOptions[option] = optionData.replace(/[\s[\]]/g, "").split(","), 
             userOptions[option][0] = userOptions[option][0].replace("'", ""), userOptions[option][userOptions[option].length - 1] = userOptions[option][userOptions[option].length - 1].replace("'", "")) : userOptions[option] = optionData);
         }
-        var option, dataoptions, optionData, attrOptions = npt.getAttribute("data-inputmask");
-        attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
-        dataoptions = JSON.parse("{" + attrOptions + "}"));
+        var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask");
+        if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
+        dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) {
+            optionData = void 0;
+            for (p in dataoptions) if ("alias" === p.toLowerCase()) {
+                optionData = dataoptions[p];
+                break;
+            }
+        }
+        importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);
         for (option in opts) {
             if (dataoptions) {
                 optionData = void 0;
-                for (var p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
+                for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
                     optionData = dataoptions[p];
                     break;
                 }
             }
             importOption(option, optionData);
         }
-        if (userOptions.alias) {
-            resolveAlias(userOptions.alias, userOptions, opts);
-            for (option in opts) importOption(option);
-        }
         return $.extend(!0, opts, userOptions), opts;
     }
     function generateMaskSet(opts, nocache) {
@@ -640,7 +643,7 @@
         }
         function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {
             if (event && $.isFunction(opts.onBeforeWrite)) {
-                var result = opts.onBeforeWrite.call(input, event, buffer, caretPos, opts);
+                var result = opts.onBeforeWrite(event, buffer, caretPos, opts);
                 if (result) {
                     if (result.refreshFromBuffer) {
                         var refresh = result.refreshFromBuffer;
@@ -706,7 +709,7 @@
             var unmaskedValue = 0 === umValue.length ? null : (isRTL ? umValue.reverse() : umValue).join("");
             if (null !== unmaskedValue) {
                 var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join("");
-                $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask.call(input, bufferValue, unmaskedValue, opts) || unmaskedValue);
+                $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue);
             }
             return unmaskedValue;
         }
@@ -760,7 +763,7 @@
             return buffer.splice(rl, lmib + 1 - rl), buffer;
         }
         function isComplete(buffer) {
-            if ($.isFunction(opts.isComplete)) return opts.isComplete.call(el, buffer, opts);
+            if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
             if ("*" === opts.repeat) return void 0;
             var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);
             if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {
@@ -990,7 +993,7 @@
             }
             var pasteValue = inputValue;
             if ($.isFunction(opts.onBeforePaste)) {
-                if (pasteValue = opts.onBeforePaste.call(input, inputValue, opts), pasteValue === !1) return e.preventDefault(), 
+                if (pasteValue = opts.onBeforePaste(inputValue, opts), pasteValue === !1) return e.preventDefault(), 
                 !1;
                 pasteValue || (pasteValue = inputValue);
             }
@@ -1031,7 +1034,7 @@
         function compositionEndEvent(e) {}
         function setValueEvent(e) {
             var input = this, value = input.inputmask._valueGet();
-            checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(input, value, opts) || value : value).split("")), 
+            checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(value, opts) || value : value).split("")), 
             undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && input.inputmask._valueSet("");
         }
         function focusEvent(e) {
@@ -1127,7 +1130,7 @@
             (android || androidfirefox || androidchrome || kindle) && ($el.off("input.inputmask"), 
             $el.on("input.inputmask", wrapEventRuler(mobileInputEvent)))), $el.on("setvalue.inputmask", wrapEventRuler(setValueEvent)), 
             "" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1) {
-                var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(el, el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();
+                var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();
                 checkVal(el, !0, !1, initialValue.split(""));
                 var buffer = getBuffer().slice();
                 undoValue = buffer.join(""), isComplete(buffer) === !1 && opts.clearIncomplete && resetMaskSet(), 

+ 1 - 1
dist/inputmask/inputmask.numeric.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/inputmask.phone.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/inputmask.regex.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/jquery.inputmask.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 18 - 15
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function($) {
     function Inputmask(alias, options) {
@@ -38,23 +38,26 @@
             "mask" === option && 0 === optionData.indexOf("[") ? (userOptions[option] = optionData.replace(/[\s[\]]/g, "").split(","), 
             userOptions[option][0] = userOptions[option][0].replace("'", ""), userOptions[option][userOptions[option].length - 1] = userOptions[option][userOptions[option].length - 1].replace("'", "")) : userOptions[option] = optionData);
         }
-        var option, dataoptions, optionData, attrOptions = npt.getAttribute("data-inputmask");
-        attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
-        dataoptions = JSON.parse("{" + attrOptions + "}"));
+        var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask");
+        if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
+        dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) {
+            optionData = void 0;
+            for (p in dataoptions) if ("alias" === p.toLowerCase()) {
+                optionData = dataoptions[p];
+                break;
+            }
+        }
+        importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);
         for (option in opts) {
             if (dataoptions) {
                 optionData = void 0;
-                for (var p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
+                for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
                     optionData = dataoptions[p];
                     break;
                 }
             }
             importOption(option, optionData);
         }
-        if (userOptions.alias) {
-            resolveAlias(userOptions.alias, userOptions, opts);
-            for (option in opts) importOption(option);
-        }
         return $.extend(!0, opts, userOptions), opts;
     }
     function generateMaskSet(opts, nocache) {
@@ -638,7 +641,7 @@
         }
         function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {
             if (event && $.isFunction(opts.onBeforeWrite)) {
-                var result = opts.onBeforeWrite.call(input, event, buffer, caretPos, opts);
+                var result = opts.onBeforeWrite(event, buffer, caretPos, opts);
                 if (result) {
                     if (result.refreshFromBuffer) {
                         var refresh = result.refreshFromBuffer;
@@ -704,7 +707,7 @@
             var unmaskedValue = 0 === umValue.length ? null : (isRTL ? umValue.reverse() : umValue).join("");
             if (null !== unmaskedValue) {
                 var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join("");
-                $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask.call(input, bufferValue, unmaskedValue, opts) || unmaskedValue);
+                $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue);
             }
             return unmaskedValue;
         }
@@ -758,7 +761,7 @@
             return buffer.splice(rl, lmib + 1 - rl), buffer;
         }
         function isComplete(buffer) {
-            if ($.isFunction(opts.isComplete)) return opts.isComplete.call(el, buffer, opts);
+            if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
             if ("*" === opts.repeat) return void 0;
             var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);
             if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {
@@ -988,7 +991,7 @@
             }
             var pasteValue = inputValue;
             if ($.isFunction(opts.onBeforePaste)) {
-                if (pasteValue = opts.onBeforePaste.call(input, inputValue, opts), pasteValue === !1) return e.preventDefault(), 
+                if (pasteValue = opts.onBeforePaste(inputValue, opts), pasteValue === !1) return e.preventDefault(), 
                 !1;
                 pasteValue || (pasteValue = inputValue);
             }
@@ -1029,7 +1032,7 @@
         function compositionEndEvent(e) {}
         function setValueEvent(e) {
             var input = this, value = input.inputmask._valueGet();
-            checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(input, value, opts) || value : value).split("")), 
+            checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(value, opts) || value : value).split("")), 
             undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && input.inputmask._valueSet("");
         }
         function focusEvent(e) {
@@ -1125,7 +1128,7 @@
             (android || androidfirefox || androidchrome || kindle) && ($el.off("input.inputmask"), 
             $el.on("input.inputmask", wrapEventRuler(mobileInputEvent)))), $el.on("setvalue.inputmask", wrapEventRuler(setValueEvent)), 
             "" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1) {
-                var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(el, el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();
+                var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();
                 checkVal(el, !0, !1, initialValue.split(""));
                 var buffer = getBuffer().slice();
                 undoValue = buffer.join(""), isComplete(buffer) === !1 && opts.clearIncomplete && resetMaskSet(), 

文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.date.extensions.min.js


+ 1 - 1
dist/min/inputmask/inputmask.dependencyLib.jquery.min.js

@@ -3,6 +3,6 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.5-0
+* Version: 3.2.5-1
 */
 !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return window.dependencyLib=a,a});

文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.extensions.min.js


文件差异内容过多而无法显示
+ 3 - 3
dist/min/inputmask/inputmask.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.numeric.extensions.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.phone.extensions.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.regex.extensions.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/jquery.inputmask.min.js


文件差异内容过多而无法显示
+ 3 - 3
dist/min/jquery.inputmask.bundle.min.js


+ 26 - 15
js/inputmask.js

@@ -327,7 +327,7 @@
 
 		function importAttributeOptions(npt, opts, userOptions) {
 			var attrOptions = npt.getAttribute("data-inputmask"),
-				option, dataoptions, optionData;
+				option, dataoptions, optionData, p;
 
 			function importOption(option, optionData) {
 				optionData = optionData !== undefined ? optionData : npt.getAttribute("data-inputmask-" + option);
@@ -349,10 +349,26 @@
 				attrOptions = attrOptions.replace(new RegExp("'", "g"), '"');
 				dataoptions = JSON.parse("{" + attrOptions + "}");
 			}
+
+			//resolve aliases
+			if (dataoptions) { //pickup alias from data-inputmask
+				optionData = undefined;
+				for (p in dataoptions) {
+					if (p.toLowerCase() === "alias") {
+						optionData = dataoptions[p];
+						break;
+					}
+				}
+			}
+			importOption("alias", optionData); //pickup alias from data-inputmask-alias
+			if (userOptions.alias) {
+				resolveAlias(userOptions.alias, userOptions, opts);
+			}
+
 			for (option in opts) {
 				if (dataoptions) {
 					optionData = undefined;
-					for (var p in dataoptions) {
+					for (p in dataoptions) {
 						if (p.toLowerCase() === option.toLowerCase()) {
 							optionData = dataoptions[p];
 							break;
@@ -361,12 +377,7 @@
 				}
 				importOption(option, optionData);
 			}
-			if (userOptions.alias) {
-				resolveAlias(userOptions.alias, userOptions, opts);
-				for (option in opts) {
-					importOption(option);
-				}
-			}
+
 			$.extend(true, opts, userOptions);
 			return opts;
 		}
@@ -1570,7 +1581,7 @@
 
 			function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {
 				if (event && $.isFunction(opts.onBeforeWrite)) {
-					var result = opts.onBeforeWrite.call(input, event, buffer, caretPos, opts);
+					var result = opts.onBeforeWrite(event, buffer, caretPos, opts);
 					if (result) {
 						if (result.refreshFromBuffer) {
 							var refresh = result.refreshFromBuffer;
@@ -1696,7 +1707,7 @@
 				if (unmaskedValue !== null) {
 					var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join("");
 					if ($.isFunction(opts.onUnMask)) {
-						unmaskedValue = (opts.onUnMask.call(input, bufferValue, unmaskedValue, opts) || unmaskedValue);
+						unmaskedValue = (opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue);
 					}
 				}
 				return unmaskedValue;
@@ -1812,7 +1823,7 @@
 			}
 
 			function isComplete(buffer) { //return true / false / undefined (repeat *)
-				if ($.isFunction(opts.isComplete)) return opts.isComplete.call(el, buffer, opts);
+				if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
 				if (opts.repeat === "*") return undefined;
 				var complete = false,
 					lrp = determineLastRequiredPosition(true),
@@ -2135,7 +2146,7 @@
 						}, 0);
 					}
 				}
-				opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts); //this is needed in onKeyDown
+				opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts);
 				ignorable = $.inArray(k, opts.ignorables) !== -1;
 			}
 
@@ -2268,7 +2279,7 @@
 
 				var pasteValue = inputValue;
 				if ($.isFunction(opts.onBeforePaste)) {
-					pasteValue = opts.onBeforePaste.call(input, inputValue, opts);
+					pasteValue = opts.onBeforePaste(inputValue, opts);
 					if (pasteValue === false) {
 						e.preventDefault();
 						return false;
@@ -2358,7 +2369,7 @@
 			function setValueEvent(e) {
 				var input = this,
 					value = input.inputmask._valueGet();
-				checkVal(input, true, false, ($.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call(input, value, opts) || value) : value).split(""));
+				checkVal(input, true, false, ($.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask(value, opts) || value) : value).split(""));
 				undoValue = getBuffer().join("");
 				if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("")) {
 					input.inputmask._valueSet("");
@@ -2601,7 +2612,7 @@
 
 				//apply mask
 				if (el.inputmask._valueGet() !== "" || opts.clearMaskOnLostFocus === false) {
-					var initialValue = $.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call(el, el.inputmask._valueGet(), opts) || el.inputmask._valueGet()) : el.inputmask._valueGet();
+					var initialValue = $.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet()) : el.inputmask._valueGet();
 					checkVal(el, true, false, initialValue.split(""));
 					var buffer = getBuffer().slice();
 					undoValue = buffer.join("");

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.5-0",
+  "version": "3.2.5-1",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
   "main": "./dist/inputmask/jquery.inputmask.js",
   "files": [

+ 4 - 4
qunit/config.js

@@ -4,10 +4,10 @@ require.config({
 		"jquery": "../node_modules/jquery/dist/jquery",
 		"jqlite": "../node_modules/jqlite/jqlite",
 		"qunit": "../node_modules/qunitjs/qunit/qunit",
-		"inputmask.dependencyLib": "../dist/inputmask/inputmask.dependencyLib.jquery",
-		// "inputmask.dependencyLib": "../extra/dependencyLibs/inputmask.dependencyLib",
+		// "inputmask.dependencyLib": "../dist/inputmask/inputmask.dependencyLib.jquery",
+		"inputmask.dependencyLib": "../extra/dependencyLibs/inputmask.dependencyLib",
 		// "inputmask.dependencyLib": "../extra/dependencyLibs/inputmask.dependencyLib.jqlite",
-		// "inputmask": "../dist/inputmask/inputmask"
-		"inputmask": "../js/inputmask"
+		"inputmask": "../dist/inputmask/inputmask"
+		// "inputmask": "../js/inputmask"
 	}
 });

+ 2 - 1
qunit/main.js

@@ -15,7 +15,8 @@ define([
 	"tests_optional",
 	"tests_phone",
 	"tests_regex",
-	"tests_escape"
+	"tests_escape",
+	"tests_attributes"
 ], function(qunit) {
 	qunit.load();
 	qunit.start();

+ 24 - 0
qunit/tests_attributes.js

@@ -0,0 +1,24 @@
+define([
+	"qunit",
+	"inputmask.dependencyLib",
+	"inputmask",
+	"../dist/inputmask/inputmask.date.extensions",
+	"../dist/inputmask/inputmask.extensions",
+	"../dist/inputmask/inputmask.numeric.extensions",
+	"../dist/inputmask/inputmask.phone.extensions",
+	"../dist/inputmask/inputmask.regex.extensions",
+	"prototypeExtensions",
+	"simulator"
+], function(qunit, $, Inputmask) {
+	qunit.module("Attribute options");
+
+	qunit.test("data-inputmask=\"'alias':'integer', 'integerDigits': 3, 'allowMinus': false, 'allowPlus': false\" - StennikovDmitriy", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" data-inputmask="\'alias\':\'integer\', \'integerDigits\': 3, \'allowMinus\': false, \'allowPlus\': false" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask().mask(testmask);
+
+		$("#testmask").Type("1234.56");
+		assert.equal(testmask.value, "123", "Result " + testmask.value);
+	});
+});