Browse Source

cleanup and fix caret positioning

Robin Herbots 11 years ago
parent
commit
ae4a406cf0

+ 0 - 30
README.md

@@ -473,13 +473,6 @@ $(document).ready(function(){
 });
 ```
 
-#### getLastValidPosition
-
-With this call-in you can override the default implementation of the getLastValidPosition Args => maskset, closestTo, opts  
-Return => position (int)
-
-See the jquery.inputmask.numeric.extensions.js for an example.
-
 #### rightAlign
 
 Align the input to the right
@@ -624,24 +617,6 @@ $(document).ready(function(){
 #=========== TODO ===========
 
 
-
-#### skipRadixDance
-
-If you define a radixPoint the caret will always jump to the integer part, until you type the radixpoint.  
-
-```javascript
-$(document).ready(function(){
-    $(selector).inputmask('€ 999.999.999,99', { numericInput: true, radixPoint: "," });
-});
-```
-
-This behavior can be skipped by setting the skipRadixDance to true.
-
-
-
-
-
-
 ### getemptymask command
 
 return the default (empty) mask value
@@ -843,11 +818,6 @@ $(document).ready(function(){
 });
 ```
 
-RadixDance
-
-With the decimal mask the caret will always jump to the integer part, until you type the radixpoint.  
-There is autocompletion on tab with decimal numbers.  You can disable this behaviour by setting the skipRadixDance to true.
-
 Define the radixpoint
 
 ```javascript

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

@@ -301,20 +301,16 @@
 
             function getLastValidPosition(closestTo) {
                 var maskset = getMaskSet(), lastValidPosition = -1, valids = maskset["validPositions"];
-                if ($.isFunction(opts.getLastValidPosition))
-                    lastValidPosition = opts.getLastValidPosition.call($el, maskset, closestTo, opts);
-                else {
-                    if (closestTo == undefined) closestTo = -1;
-                    var before = lastValidPosition, after = lastValidPosition;
-                    for (var posNdx in valids) {
-                        var psNdx = parseInt(posNdx);
-                        if (closestTo == -1 || valids[psNdx]["match"].fn != null) {
-                            if (psNdx < closestTo) before = psNdx;
-                            if (psNdx >= closestTo) after = psNdx;
-                        }
-                    }
-                    lastValidPosition = (closestTo - before) > 1 || after < closestTo ? before : after;
+                if (closestTo == undefined) closestTo = -1;
+                var before = lastValidPosition, after = lastValidPosition;
+                for (var posNdx in valids) {
+                    var psNdx = parseInt(posNdx);
+                    if (closestTo == -1 || valids[psNdx]["match"].fn != null) {
+                        if (psNdx < closestTo) before = psNdx;
+                        if (psNdx >= closestTo) after = psNdx;
+                    }
                 }
+                lastValidPosition = (closestTo - before) > 1 || after < closestTo ? before : after;
                 return lastValidPosition;
             }
 
@@ -1017,10 +1013,10 @@
                         pos.begin--;
                 }
 
-                stripValidPositions(pos.begin, pos.end);
-                var firstMaskPos = seekNext(-1);
-                if (getLastValidPosition() < firstMaskPos) {
-                    getMaskSet()["p"] = firstMaskPos;
+                stripValidPositions(pos.begin, pos.end);
+                var firstMaskedPos = getLastValidPosition(pos.begin);
+                if (firstMaskedPos < pos.begin) {
+                    getMaskSet()["p"] = seekNext(firstMaskedPos);
                 } else {
                     getMaskSet()["p"] = pos.begin;
                 }
@@ -1361,8 +1357,8 @@
                     }).bind("click.inputmask", function () {
                         var input = this;
                         if ($(input).is(":focus")) {
-                            setTimeout(function() {
-                                var selectedCaret = caret(input), buffer = getBuffer();
+                            setTimeout(function () {
+                                var selectedCaret = caret(input);
                                 if (selectedCaret.begin == selectedCaret.end) {
                                     var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
                                         lvp = getLastValidPosition(clickPosition),
@@ -1567,7 +1563,6 @@
                 skipOptionalPartCharacter: " ", //a character which can be used to skip an optional part of a mask
                 showTooltip: false, //show the activemask as tooltip
                 numericInput: false, //numericInput input direction style (input shifts to the left while holding the caret position)
-                getLastValidPosition: undefined, //override getLastValidPosition - args => maskset, closestTo, opts - return position (int)
                 rightAlign: false, //align to the right
                 //numeric basic properties
                 radixPoint: "", //".", // | ","
@@ -2721,22 +2716,6 @@ Optional extensions on the jquery.inputmask base
             integerDigits: "+", //number of integerDigits
             prefix: "",
             suffix: "",
-            skipRadixDance: false, //disable radixpoint caret positioning
-            getLastValidPosition: function (maskset, closestTo, opts) {
-                var lastValidPosition = -1, valids = maskset["validPositions"];
-                for (var posNdx in valids) {
-                    var psNdx = parseInt(posNdx);
-                    if (psNdx > lastValidPosition) lastValidPosition = psNdx;
-                }
-
-                if (closestTo != undefined) {
-                    var buffer = maskset["buffer"];
-                    if (opts.skipRadixDance === false && opts.radixPoint != "" && $.inArray(opts.radixPoint, buffer) != -1)
-                        lastValidPosition = $.inArray(opts.radixPoint, buffer);
-                }
-
-                return lastValidPosition;
-            },
             rightAlign: true,
             postFormat: function (buffer, pos, reformatOnly, opts) {
                 var needsRefresh = false;

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


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


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


+ 13 - 18
js/jquery.inputmask.js

@@ -301,20 +301,16 @@
 
             function getLastValidPosition(closestTo) {
                 var maskset = getMaskSet(), lastValidPosition = -1, valids = maskset["validPositions"];
-                if ($.isFunction(opts.getLastValidPosition))
-                    lastValidPosition = opts.getLastValidPosition.call($el, maskset, closestTo, opts);
-                else {
-                    if (closestTo == undefined) closestTo = -1;
-                    var before = lastValidPosition, after = lastValidPosition;
-                    for (var posNdx in valids) {
-                        var psNdx = parseInt(posNdx);
-                        if (closestTo == -1 || valids[psNdx]["match"].fn != null) {
-                            if (psNdx < closestTo) before = psNdx;
-                            if (psNdx >= closestTo) after = psNdx;
-                        }
+                if (closestTo == undefined) closestTo = -1;
+                var before = lastValidPosition, after = lastValidPosition;
+                for (var posNdx in valids) {
+                    var psNdx = parseInt(posNdx);
+                    if (closestTo == -1 || valids[psNdx]["match"].fn != null) {
+                        if (psNdx < closestTo) before = psNdx;
+                        if (psNdx >= closestTo) after = psNdx;
                     }
-                    lastValidPosition = (closestTo - before) > 1 || after < closestTo ? before : after;
                 }
+                lastValidPosition = (closestTo - before) > 1 || after < closestTo ? before : after;
                 return lastValidPosition;
             }
 
@@ -1018,9 +1014,9 @@
                 }
 
                 stripValidPositions(pos.begin, pos.end);
-                var firstMaskPos = seekNext(-1);
-                if (getLastValidPosition() < firstMaskPos) {
-                    getMaskSet()["p"] = firstMaskPos;
+                var firstMaskedPos = getLastValidPosition(pos.begin);
+                if (firstMaskedPos < pos.begin) {
+                    getMaskSet()["p"] = seekNext(firstMaskedPos);
                 } else {
                     getMaskSet()["p"] = pos.begin;
                 }
@@ -1361,8 +1357,8 @@
                     }).bind("click.inputmask", function () {
                         var input = this;
                         if ($(input).is(":focus")) {
-                            setTimeout(function() {
-                                var selectedCaret = caret(input), buffer = getBuffer();
+                            setTimeout(function () {
+                                var selectedCaret = caret(input);
                                 if (selectedCaret.begin == selectedCaret.end) {
                                     var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
                                         lvp = getLastValidPosition(clickPosition),
@@ -1567,7 +1563,6 @@
                 skipOptionalPartCharacter: " ", //a character which can be used to skip an optional part of a mask
                 showTooltip: false, //show the activemask as tooltip
                 numericInput: false, //numericInput input direction style (input shifts to the left while holding the caret position)
-                getLastValidPosition: undefined, //override getLastValidPosition - args => maskset, closestTo, opts - return position (int)
                 rightAlign: false, //align to the right
                 //numeric basic properties
                 radixPoint: "", //".", // | ","

+ 0 - 16
js/jquery.inputmask.numeric.extensions.js

@@ -51,22 +51,6 @@ Optional extensions on the jquery.inputmask base
             integerDigits: "+", //number of integerDigits
             prefix: "",
             suffix: "",
-            skipRadixDance: false, //disable radixpoint caret positioning
-            getLastValidPosition: function (maskset, closestTo, opts) {
-                var lastValidPosition = -1, valids = maskset["validPositions"];
-                for (var posNdx in valids) {
-                    var psNdx = parseInt(posNdx);
-                    if (psNdx > lastValidPosition) lastValidPosition = psNdx;
-                }
-
-                if (closestTo != undefined) {
-                    var buffer = maskset["buffer"];
-                    if (opts.skipRadixDance === false && opts.radixPoint != "" && $.inArray(opts.radixPoint, buffer) != -1)
-                        lastValidPosition = $.inArray(opts.radixPoint, buffer);
-                }
-
-                return lastValidPosition;
-            },
             rightAlign: true,
             postFormat: function (buffer, pos, reformatOnly, opts) {
                 var needsRefresh = false;