浏览代码

update phone extension

Robin Herbots 11 年之前
父节点
当前提交
6b7ed2e067
共有 2 个文件被更改,包括 10 次插入7 次删除
  1. 5 4
      js/jquery.inputmask.js
  2. 5 3
      js/jquery.inputmask.phone.extensions.js

+ 5 - 4
js/jquery.inputmask.js

@@ -569,7 +569,7 @@
                 var maskL = getMaskLength();
                 if (pos >= maskL) return maskL;
                 var position = pos;
-                while (++position < maskL && !isMask(position)) {
+                while (++position < maskL && !isMask(position) && (opts.nojumps !== true || opts.nojumpsThreshold > position)) {
                 }
                 return position;
             }
@@ -578,7 +578,7 @@
                 var position = pos;
                 if (position <= 0) return 0;
 
-                while (--position > 0 && !isMask(position)) {
+                while (--position > 0 && !isMask(position) && (opts.nojumps !== true || opts.nojumpsThreshold > position)) {
                 };
                 return position;
             }
@@ -1352,7 +1352,6 @@
         };
 
         function multiMaskScope(el, masksets, opts) {
-
             function caret(input, begin, end) {
                 var npt = input.jquery && input.length > 0 ? input[0] : input, range;
                 if (typeof begin == 'number') {
@@ -1434,7 +1433,7 @@
                 var caretPos = caret(el), k;
                 if (e.type == "keydown") {
                     k = e.keyCode;
-                    if (k == opts.keyCode.DOWN && activeMasksetIndex < elmasks.length) {
+                    if (k == opts.keyCode.DOWN && activeMasksetIndex < elmasks.length - 1) {
                         activeMasksetIndex++;
                         determineActiveMask("multiMaskScope", elmasks);
                         return false;
@@ -1525,6 +1524,8 @@
                 ignorables: [8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123],
                 isComplete: undefined, //override for isComplete - args => buffer, opts - return true || false
                 //multi-masks
+                nojumps: false, //do not jump over fixed parts in the mask
+                nojumpsThreshold: 0, //start nojumps as of
                 determineActiveMasksetIndex: undefined //override determineActiveMasksetIndex - args => eventType, elmasks - return int
             },
             masksCache: {},

+ 5 - 3
js/jquery.inputmask.phone.extensions.js

@@ -41,10 +41,12 @@ When using this extension make sure you specify the correct url to get the masks
                         maskList = response;
                     }
                 });
-    
-                maskList.splice(0, 0, "+p(ppp)ppp-pppp");
+
+                //maskList.splice(0, 0, "+p(ppp)ppp-pppp");
                 return maskList;
-            }
+            },
+            nojumps: true,
+            nojumpsThreshold: 4
         }
     });
 })(jQuery);