Browse Source

review jquery.inputmask.js

Robin Herbots 10 years ago
parent
commit
d278f460ae

+ 4 - 0
CHANGELOG.md

@@ -3,7 +3,11 @@ All notable changes to this project will be documented in this file.
 
 
 ## UNRELEASED
 ## UNRELEASED
 
 
+### Updates
+- remove $("selector").inputmask("mask", { mask: "99-999 ..." }) format from plugin
+
 ### Fixed
 ### Fixed
+- data-inputmask => mask with optionals not parsed correctly #1119
 - Email mask doesn't allow to go to the domain part by mouse #885
 - Email mask doesn't allow to go to the domain part by mouse #885
 - alias options from 'data-inputmask' is not used anymore #1113
 - alias options from 'data-inputmask' is not used anymore #1113
 - Numeric extensions don't supported with vanilla DependencyLib #1116
 - Numeric extensions don't supported with vanilla DependencyLib #1116

+ 2 - 3
README.md

@@ -70,8 +70,7 @@ or with the bundled version
 ```javascript
 ```javascript
 $(document).ready(function(){
 $(document).ready(function(){
    $(selector).inputmask("99-9999999");  //static mask
    $(selector).inputmask("99-9999999");  //static mask
-   $(selector).inputmask("mask", {"mask": "(999) 999-9999"}); //specifying fn & options
-   $(selector).inputmask({"mask": "99-9999999"}); //specifying options only
+   $(selector).inputmask({"mask": "(999) 999-9999"}); //specifying options
    $(selector).inputmask("9-a{1,3}9{1,3}"); //mask with dynamic syntax
    $(selector).inputmask("9-a{1,3}9{1,3}"); //mask with dynamic syntax
 });
 });
 ```
 ```
@@ -423,7 +422,7 @@ Inputmask.extendDefaults({
 Create a mask for the input.
 Create a mask for the input.
 
 
 ```javascript
 ```javascript
-   $(selector).inputmask('mask', { mask: "99-999-99"});
+   $(selector).inputmask({ mask: "99-999-99"});
 ```
 ```
 
 
    or
    or

+ 1 - 1
bower.json

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

+ 1 - 1
component.json

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

+ 1 - 1
composer.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "robinherbots/jquery.inputmask",
   "name": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.5-2",
+  "version": "3.2.5-3",
   "type": "library",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/jquery.inputmask",
   "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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);
     "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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "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);

+ 4 - 4
dist/inputmask/inputmask.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery")) : factory(window.dependencyLib || jQuery);
@@ -37,8 +37,7 @@
         function importOption(option, optionData) {
         function importOption(option, optionData) {
             optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), 
             optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), 
             null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), 
             null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), 
-            "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);
+            userOptions[option] = optionData);
         }
         }
         var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask");
         var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask");
         if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
         if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
@@ -449,7 +448,8 @@
                         def: ""
                         def: ""
                     },
                     },
                     locator: []
                     locator: []
-                }), getMaskSet().tests[pos] = $.extend(!0, [], matches), getMaskSet().tests[pos];
+                }), getMaskSet().tests[pos] = $.extend(!0, [], matches), console.log(pos + " - " + JSON.stringify(matches)), 
+                getMaskSet().tests[pos];
             }
             }
         }
         }
         function getBufferTemplate() {
         function getBufferTemplate() {

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

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function(factory) {
 !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);
     "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 4 - 4
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !function($) {
 !function($) {
     function Inputmask(alias, options) {
     function Inputmask(alias, options) {
@@ -35,8 +35,7 @@
         function importOption(option, optionData) {
         function importOption(option, optionData) {
             optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), 
             optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), 
             null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), 
             null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), 
-            "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);
+            userOptions[option] = optionData);
         }
         }
         var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask");
         var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask");
         if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
         if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 
@@ -447,7 +446,8 @@
                         def: ""
                         def: ""
                     },
                     },
                     locator: []
                     locator: []
-                }), getMaskSet().tests[pos] = $.extend(!0, [], matches), getMaskSet().tests[pos];
+                }), getMaskSet().tests[pos] = $.extend(!0, [], matches), console.log(pos + " - " + JSON.stringify(matches)), 
+                getMaskSet().tests[pos];
             }
             }
         }
         }
         function getBufferTemplate() {
         function getBufferTemplate() {

File diff suppressed because it is too large
+ 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
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Copyright (c) 2010 - 2015 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: 3.2.5-2
+* Version: 3.2.5-3
 */
 */
 !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});
 !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});

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


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


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


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


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


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


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


+ 3 - 7
js/inputmask.js

@@ -337,11 +337,7 @@
 						else if (optionData === "false") optionData = false;
 						else if (optionData === "false") optionData = false;
 						else if (optionData === "true") optionData = true;
 						else if (optionData === "true") optionData = true;
 					}
 					}
-					if (option === "mask" && optionData.indexOf("[") === 0) {
-						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("'", "");
-					} else userOptions[option] = optionData;
+					userOptions[option] = optionData;
 				}
 				}
 			}
 			}
 
 
@@ -1179,7 +1175,7 @@
 						});
 						});
 					}
 					}
 					getMaskSet().tests[pos] = $.extend(true, [], matches); //set a clone to prevent overwriting some props
 					getMaskSet().tests[pos] = $.extend(true, [], matches); //set a clone to prevent overwriting some props
-					// console.log(pos + " - " + JSON.stringify(matches));
+					console.log(pos + " - " + JSON.stringify(matches));
 					return getMaskSet().tests[pos];
 					return getMaskSet().tests[pos];
 				}
 				}
 			}
 			}
@@ -1505,7 +1501,7 @@
 						}
 						}
 					}
 					}
 				}
 				}
-				if (result === false && opts.keepStatic && isComplete(buffer)) { //try fuzzy alternator logic
+				if (result === false && opts.keepStatic) { //try fuzzy alternator logic
 					result = alternate(pos, c, strict, fromSetValid);
 					result = alternate(pos, c, strict, fromSetValid);
 				}
 				}
 				if (result === true) {
 				if (result === true) {

+ 8 - 20
js/jquery.inputmask.js

@@ -19,45 +19,33 @@
 		if ($.fn.inputmask === undefined) {
 		if ($.fn.inputmask === undefined) {
 			//jquery plugin
 			//jquery plugin
 			$.fn.inputmask = function(fn, options) {
 			$.fn.inputmask = function(fn, options) {
-				var nptmask, input;
+				var nptmask, input = this[0];
 				options = options || {};
 				options = options || {};
 				if (typeof fn === "string") {
 				if (typeof fn === "string") {
 					switch (fn) {
 					switch (fn) {
-						case "mask":
-							nptmask = new Inputmask(options);
-							return this.each(function() {
-								nptmask.mask(this);
-							});
 						case "unmaskedvalue":
 						case "unmaskedvalue":
-							input = this.jquery && this.length > 0 ? this[0] : this;
-							return input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
+							return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
 						case "remove":
 						case "remove":
 							return this.each(function() {
 							return this.each(function() {
 								if (this.inputmask) this.inputmask.remove();
 								if (this.inputmask) this.inputmask.remove();
 							});
 							});
 						case "getemptymask":
 						case "getemptymask":
-							input = this.jquery && this.length > 0 ? this[0] : this;
-							return input.inputmask ? input.inputmask.getemptymask() : "";
+							return input && input.inputmask ? input.inputmask.getemptymask() : "";
 						case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value
 						case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value
-							input = this.jquery && this.length > 0 ? this[0] : this;
-							return input.inputmask ? input.inputmask.hasMaskedValue() : false;
+							return input && input.inputmask ? input.inputmask.hasMaskedValue() : false;
 						case "isComplete":
 						case "isComplete":
-							input = this.jquery && this.length > 0 ? this[0] : this;
-							return input.inputmask ? input.inputmask.isComplete() : true;
+							return input && input.inputmask ? input.inputmask.isComplete() : true;
 						case "getmetadata": //return mask metadata if exists
 						case "getmetadata": //return mask metadata if exists
-							input = this.jquery && this.length > 0 ? this[0] : this;
-							return input.inputmask ? input.inputmask.getmetadata() : undefined;
+							return input && input.inputmask ? input.inputmask.getmetadata() : undefined;
 						case "setvalue":
 						case "setvalue":
-							input = this.jquery && this.length > 0 ? this[0] : this;
 							$(input).val(options);
 							$(input).val(options);
-							if (input.inputmask !== undefined) {
+							if (input && input.inputmask !== undefined) {
 								$(input).triggerHandler("setvalue.inputmask");
 								$(input).triggerHandler("setvalue.inputmask");
 							}
 							}
 							break;
 							break;
 						case "option":
 						case "option":
 							if (typeof options === "string") {
 							if (typeof options === "string") {
-								input = this.jquery && this.length > 0 ? this[0] : this;
-								if (input.inputmask !== undefined) {
+								if (input && input.inputmask !== undefined) {
 									return input.inputmask.option(options);
 									return input.inputmask.option(options);
 								}
 								}
 							} else {
 							} else {

+ 1 - 1
package.json

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

+ 2 - 1
qunit/main.js

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

+ 10 - 0
qunit/tests_attributes.js

@@ -21,4 +21,14 @@ define([
 		$("#testmask").Type("1234.56");
 		$("#testmask").Type("1234.56");
 		assert.equal(testmask.value, "123", "Result " + testmask.value);
 		assert.equal(testmask.value, "123", "Result " + testmask.value);
 	});
 	});
+
+	qunit.test("data-inputmask=\"'mask':'[9-]AAA-999'\" - airomero", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" data-inputmask="\'mask\':\'[9-]AAA-999\'" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask().mask(testmask);
+
+		$("#testmask").Type("abc123");
+		assert.equal(testmask.value, "ABC-123", "Result " + testmask.value);
+	});
 });
 });

+ 23 - 0
qunit/tests_jquery_inputmask.js

@@ -0,0 +1,23 @@
+define([
+	"qunit",
+	"jquery",
+	"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",
+	"../dist/inputmask/jquery.inputmask",
+	"prototypeExtensions",
+	"simulator"
+], function(qunit, $, Inputmask) {
+	qunit.module("jquery.inputmask plugin");
+	qunit.test("", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+
+		$("#testmask").inputmask({"mask": "99-9999-99"});
+		$("#testmask").focus();
+		assert.equal(testmask.inputmask._valueGet(), "__-____-__", "Result " + testmask.inputmask._valueGet());
+	});
+});