浏览代码

Email mask doesn t allow to go to the domain part by mouse fix #885

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

+ 3 - 1
CHANGELOG.md

@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
 ## UNRELEASED
 
 ### Fixed
+- Email mask doesn't allow to go to the domain part by mouse #885
+- alias options from 'data-inputmask' is not used anymore #1113
 - Numeric extensions don't supported with vanilla DependencyLib #1116
 
 ## [3.2.4] - 2015-11-20
@@ -15,7 +17,7 @@ All notable changes to this project will be documented in this file.
 
 ### Fixed
 - get the pressed key onKeyValidation #1114
-- write a global function for onKeyValidation #1111
+- write a global function for onKeyValidation #1111 => update readme
 - NumericInput Causes err #856
 - Certain phones not inputable #758
 - I have a problems with mask input, I can't input Ukraine phone +380(XX)XXX-XX-XX #1050

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.5-1",
+  "version": "3.2.5-2",
   "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-1",
+  "version": "3.2.5-2",
   "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-1",
+  "version": "3.2.5-2",
   "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-1
+* Version: 3.2.5-2
 */
 !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-1
+* Version: 3.2.5-2
 */
 !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-1
+* Version: 3.2.5-2
 */
 !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);

+ 3 - 2
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-1
+* Version: 3.2.5-2
 */
 !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);
@@ -1072,7 +1072,8 @@
                 var selectedCaret = caret(input);
                 if (selectedCaret.begin === selectedCaret.end) if (doRadixFocus(selectedCaret.begin)) caret(input, $.inArray(opts.radixPoint, getBuffer())); else {
                     var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition), lastPosition = seekNext(lvclickPosition);
-                    lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : caret(input, opts.numericInput ? 0 : lastPosition);
+                    lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : (getBuffer()[lastPosition] !== getPlaceholder(lastPosition) && (lastPosition = seekNext(lastPosition)), 
+                    caret(input, opts.numericInput ? 0 : lastPosition));
                 }
             }
         }

+ 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-1
+* Version: 3.2.5-2
 */
 !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-1
+* Version: 3.2.5-2
 */
 !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-1
+* Version: 3.2.5-2
 */
 !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-1
+* Version: 3.2.5-2
 */
 !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);

+ 3 - 2
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-1
+* Version: 3.2.5-2
 */
 !function($) {
     function Inputmask(alias, options) {
@@ -1070,7 +1070,8 @@
                 var selectedCaret = caret(input);
                 if (selectedCaret.begin === selectedCaret.end) if (doRadixFocus(selectedCaret.begin)) caret(input, $.inArray(opts.radixPoint, getBuffer())); else {
                     var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition), lastPosition = seekNext(lvclickPosition);
-                    lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : caret(input, opts.numericInput ? 0 : lastPosition);
+                    lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : (getBuffer()[lastPosition] !== getPlaceholder(lastPosition) && (lastPosition = seekNext(lastPosition)), 
+                    caret(input, opts.numericInput ? 0 : lastPosition));
                 }
             }
         }

文件差异内容过多而无法显示
+ 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-1
+* Version: 3.2.5-2
 */
 !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


文件差异内容过多而无法显示
+ 2 - 2
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


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


+ 3 - 0
js/inputmask.js

@@ -2444,6 +2444,9 @@
 							if (clickPosition < lastPosition) {
 								caret(input, !isMask(clickPosition) && !isMask(clickPosition - 1) ? seekNext(clickPosition) : clickPosition);
 							} else {
+								if (getBuffer()[lastPosition] !== getPlaceholder(lastPosition)) {
+									lastPosition = seekNext(lastPosition);
+								}
 								caret(input, opts.numericInput ? 0 : lastPosition);
 							}
 						}

+ 2 - 13
nuspecs/jquery.inputmask.linux.nuspec

@@ -9,19 +9,8 @@
     <licenseUrl>http://opensource.org/licenses/mit-license.php</licenseUrl>
     <projectUrl>https://github.com/RobinHerbots/jquery.inputmask</projectUrl>
     <requireLicenseAcceptance>true</requireLicenseAcceptance>
-    <summary>jquery.inputmask is a jquery plugin which create an input
-      mask.</summary>
-    <description>jquery.inputmask is a jquery plugin which create an input mask. An
-      inputmask helps the user with the input by ensuring a predefined format. This
-      can be useful for dates, numerics, phone numbers, ... Highlights: - easy to use
-      - optional parts anywere in the mask - possibility to define aliases which hide
-      complexity - date / datetime masks - numeric masks - lots of callbacks -
-      non-greedy masks - many features can be enabled/disabled/configured by options -
-      supports readonly/disabled/dir="rtl" attributes - support data-inputmask
-      attribute(s) - alternator-mask support - regex-mask support - dynamic-mask
-      support - preprocessing-mask support - value formatting / validating without
-      input element
-    </description>
+    <summary>jquery.inputmask is a jquery plugin which create an input mask.</summary>
+    <description>jquery.inputmask is a jquery plugin which create an input mask.</description>
     <tags>jQuery, plugins, input, form, inputmask, mask</tags>
   </metadata>
   <files>

+ 2 - 13
nuspecs/jquery.inputmask.nuspec

@@ -9,19 +9,8 @@
     <licenseUrl>http://opensource.org/licenses/mit-license.php</licenseUrl>
     <projectUrl>https://github.com/RobinHerbots/jquery.inputmask</projectUrl>
     <requireLicenseAcceptance>true</requireLicenseAcceptance>
-    <summary>jquery.inputmask is a jquery plugin which create an input
-      mask.</summary>
-    <description>jquery.inputmask is a jquery plugin which create an input mask. An
-      inputmask helps the user with the input by ensuring a predefined format. This
-      can be useful for dates, numerics, phone numbers, ... Highlights: - easy to use
-      - optional parts anywere in the mask - possibility to define aliases which hide
-      complexity - date / datetime masks - numeric masks - lots of callbacks -
-      non-greedy masks - many features can be enabled/disabled/configured by options -
-      supports readonly/disabled/dir="rtl" attributes - support data-inputmask
-      attribute(s) - alternator-mask support - regex-mask support - dynamic-mask
-      support - preprocessing-mask support - value formatting / validating without
-      input element
-    </description>
+    <summary>jquery.inputmask is a jquery plugin which create an input mask.</summary>
+    <description>jquery.inputmask is a jquery plugin which create an input mask.</description>
     <tags>jQuery, plugins, input, form, inputmask, mask</tags>
   </metadata>
   <files>

+ 1 - 1
package.json

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

+ 21 - 0
qunit/tests_dynamic.js

@@ -286,4 +286,25 @@ define([
 		$("#testmask").SendKey(Inputmask.keyCode.DELETE);
 		assert.equal(document.getElementById("testmask").inputmask._valueGet(), "ab-1234", "Result " + document.getElementById("testmask").inputmask._valueGet());
 	});
+
+	qunit.test("email mask - mouseclick to domain part - hiddenman", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("akornilov");
+
+		//fake click in position
+		$.caret(testmask, 10);
+		$("#testmask").trigger("click");
+
+		$("#testmask").Type("gmail.com");
+		setTimeout(function() {
+			assert.equal(document.getElementById("testmask").inputmask._valueGet(), "akornilov@gmail.com", "Result " + document.getElementById("testmask").inputmask._valueGet());
+			done();
+		}, 0);
+	});
 });