Browse Source

some fixes for numeric extension

Robin Herbots 11 years ago
parent
commit
4cf89306ff

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


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


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


+ 10 - 10
js/jquery.inputmask.js

@@ -415,15 +415,14 @@
             }
             function stripValidPositions(start, end) {
                 var i, startPos = start;
+                if (getMaskSet()["validPositions"][start] != undefined && getMaskSet()["validPositions"][start].input == opts.radixPoint) {
+                    end++;
+                    startPos++;
+                }
                 for (i = startPos; i < end; i++) { //clear selection
-                    if (getMaskSet()["validPositions"][i] != undefined) {
-                        if (getMaskSet()["validPositions"][i].input != opts.radixPoint || i == getLastValidPosition())
-                            delete getMaskSet()["validPositions"][i];
-                        else if (getMaskSet()["validPositions"][i].input == opts.radixPoint) {
-                            end++;
-                            startPos++;
-                        }
-                    }
+                    if (getMaskSet()["validPositions"][i] != undefined &&
+                        (getMaskSet()["validPositions"][i].input != opts.radixPoint || i == getLastValidPosition()))
+                        delete getMaskSet()["validPositions"][i];
                 }
 
                 for (i = end ; i <= getLastValidPosition() ;) {
@@ -438,8 +437,9 @@
                     } else i++;
                 }
                 //remove radixpoint if needed
-                if (getMaskSet()["validPositions"][start] != undefined && (getMaskSet()["validPositions"][start].input == opts.radixPoint && startPos == getLastValidPosition()))
-                    delete getMaskSet()["validPositions"][startPos];
+                var lvp = getLastValidPosition();
+                if (start <= lvp && getMaskSet()["validPositions"][lvp] != undefined && (getMaskSet()["validPositions"][lvp].input == opts.radixPoint))
+                    delete getMaskSet()["validPositions"][lvp];
 
                 resetMaskSet(true);
             }

+ 8 - 8
js/jquery.inputmask.numeric.extensions.js

@@ -16,13 +16,13 @@ Optional extensions on the jquery.inputmask base
                     opts.integerDigits = opts.repeat;
                 }
                 opts.repeat = 0;
-				if(opts.groupSeparator == opts.radixPoint){ //treat equal separator and radixpoint
-					if(opts.radixPoint == ".")
-						opts.groupSeparator = ",";
-					else if(opts.radixPoint == ",")
-						opts.groupSeparator = ".";
-					else opts.groupSeparator = "";
-				}
+                if (opts.groupSeparator == opts.radixPoint) { //treat equal separator and radixpoint
+                    if (opts.radixPoint == ".")
+                        opts.groupSeparator = ",";
+                    else if (opts.radixPoint == ",")
+                        opts.groupSeparator = ".";
+                    else opts.groupSeparator = "";
+                }
                 opts.autoGroup = opts.autoGroup && opts.groupSeparator != "";
 
                 if (opts.autoGroup && isFinite(opts.integerDigits)) {
@@ -268,7 +268,7 @@ Optional extensions on the jquery.inputmask base
             }
         },
         'currency': {
-            prefix: "$",
+            prefix: "$ ",
             groupSeparator: ",",
             radixPoint: ".",
             alias: "numeric",

+ 1 - 1
qunit/tests_numeric.js

@@ -397,7 +397,7 @@ test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalP
     $("#testmask").SendKey($.keyCodes.DELETE);
     $("#testmask").SendKey($.keyCodes.DELETE);
 
-    equal($("#testmask").val(), "12345.", "Result " + $("#testmask").val());
+    equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
     $("#testmask").remove();
 });
 test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true  }\") - input 12345.123 + replace .123 => .789", function () {