ソースを参照

another case in the radixhandler

Robin Herbots 11 年 前
コミット
6c7540189c

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

@@ -132,7 +132,7 @@
                         c: integerValue[0],
                         caret: radixPos + 1
                     };
-                    if (!integerValue || -1 == radixPos && "0" == integerValue[0]) return maskset.buffer[integerValue ? integerValue.index : pos] = "0", 
+                    if (!integerValue || "0" == integerValue[0] && integerValue.index + 1 != pos) return maskset.buffer[integerValue ? integerValue.index : pos] = "0", 
                     {
                         pos: (integerValue ? integerValue.index : pos) + 1
                     };

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

@@ -1879,7 +1879,7 @@
                         c: integerValue[0],
                         caret: radixPos + 1
                     };
-                    if (!integerValue || -1 == radixPos && "0" == integerValue[0]) return maskset.buffer[integerValue ? integerValue.index : pos] = "0", 
+                    if (!integerValue || "0" == integerValue[0] && integerValue.index + 1 != pos) return maskset.buffer[integerValue ? integerValue.index : pos] = "0", 
                     {
                         pos: (integerValue ? integerValue.index : pos) + 1
                     };

ファイルの差分が大きいため隠しています
+ 1 - 1
dist/jquery.inputmask.bundle.min.js


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

@@ -163,7 +163,7 @@ Optional extensions on the jquery.inputmask base
                         if (maskset["validPositions"][radixPos - 1])
                             return { "caret": radixPos + 1 };
                         else return { "pos": integerValue.index, c: integerValue[0], "caret": radixPos + 1 };
-                    } else if (!integerValue || (radixPos == -1 && integerValue["0"] == "0")) {
+                    } else if (!integerValue || (integerValue["0"] == "0" && (integerValue.index + 1) != pos)) {
                         maskset.buffer[integerValue ? integerValue.index : pos] = "0";
                         return { "pos": (integerValue ? integerValue.index : pos) + 1 };
                     }

+ 19 - 0
qunit/tests_numeric.js

@@ -832,4 +832,23 @@ asyncTest("inputmask(\"decimal\ placeholder :\"\" digitsoptional: false) - 123 -
         equal($("#testmask").val(), "123,00", "Result " + $("#testmask").val());
         $("#testmask").remove();
     }, 0);
+});
+
+asyncTest("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12 - YodaJM", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', {
+        digits: 2,
+        placeholder: "0",
+        digitsOptional: false
+    });
+    $("#testmask")[0].focus();
+    $.caret($("#testmask"), 0, 4);
+
+    setTimeout(function () {
+        $("#testmask").Type(".12");
+        start();
+        equal($("#testmask").val(), "0.12", "Result " + $("#testmask").val());
+        $("#testmask").remove();
+    }, 0);
 });