ソースを参照

Fix : Home button doesn't work #729

Robin Herbots 11 年 前
コミット
cc678c6aac

+ 3 - 4
dist/inputmask/jquery.inputmask.js

@@ -39,6 +39,7 @@
             function insertTestDefinition(mtoken, element, position) {
             function insertTestDefinition(mtoken, element, position) {
                 var maskdef = opts.definitions[element], newBlockMarker = 0 == mtoken.matches.length;
                 var maskdef = opts.definitions[element], newBlockMarker = 0 == mtoken.matches.length;
                 if (position = void 0 != position ? position : mtoken.matches.length, maskdef && !escaped) {
                 if (position = void 0 != position ? position : mtoken.matches.length, maskdef && !escaped) {
+                    maskdef.placeholder = $.isFunction(maskdef.placeholder) ? maskdef.placeholder.call(this, opts) : maskdef.placeholder;
                     for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {
                     for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {
                         var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;
                         var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;
                         mtoken.matches.splice(position++, 0, {
                         mtoken.matches.splice(position++, 0, {
@@ -531,9 +532,7 @@
             input._valueSet(buffer.join("")), void 0 != caretPos && caret(input, caretPos);
             input._valueSet(buffer.join("")), void 0 != caretPos && caret(input, caretPos);
         }
         }
         function getPlaceholder(pos, test) {
         function getPlaceholder(pos, test) {
-            test = test || getTest(pos);
-            var placeholder = $.isFunction(test.placeholder) ? test.placeholder.call(this, opts) : test.placeholder;
-            return void 0 != placeholder ? placeholder : null == test.fn ? test.def : opts.placeholder.charAt(pos % opts.placeholder.length);
+            return test = test || getTest(pos), void 0 != test.placeholder ? test.placeholder : null == test.fn ? test.def : opts.placeholder.charAt(pos % opts.placeholder.length);
         }
         }
         function checkVal(input, writeOut, strict, nptvl) {
         function checkVal(input, writeOut, strict, nptvl) {
             var inputValue = void 0 != nptvl ? nptvl.slice() : input._valueGet().split("");
             var inputValue = void 0 != nptvl ? nptvl.slice() : input._valueGet().split("");
@@ -588,7 +587,7 @@
             data.caret = {
             data.caret = {
                 begin: begin,
                 begin: begin,
                 end: end
                 end: end
-            }, $(npt).data("_inputmask", data), $(npt).is(":visible") && (npt.scrollLeft = npt.scrollWidth, 
+            }, $(npt).data("_inputmask", data), $(npt).is(":visible") && (npt.scrollLeft = $(npt).css("font-size").replace("px", "") * end > npt.scrollWidth ? npt.scrollWidth : 0, 
             0 == opts.insertMode && begin == end && end++, npt.setSelectionRange ? (npt.selectionStart = begin, 
             0 == opts.insertMode && begin == end && end++, npt.setSelectionRange ? (npt.selectionStart = begin, 
             npt.selectionEnd = end) : npt.createTextRange && (range = npt.createTextRange(), 
             npt.selectionEnd = end) : npt.createTextRange && (range = npt.createTextRange(), 
             range.collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin), 
             range.collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin), 

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

@@ -191,8 +191,7 @@
                         if (!isValid) {
                         if (!isValid) {
                             var radix = "[" + $.inputmask.escapeRegex.call(this, opts.radixPoint) + "]";
                             var radix = "[" + $.inputmask.escapeRegex.call(this, opts.radixPoint) + "]";
                             isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder == opts.radixPoint && (isValid = {
                             isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder == opts.radixPoint && (isValid = {
-                                pos: pos,
-                                remove: pos
+                                caret: pos + 1
                             });
                             });
                         }
                         }
                         return isValid;
                         return isValid;

+ 4 - 6
dist/jquery.inputmask.bundle.js

@@ -37,6 +37,7 @@
             function insertTestDefinition(mtoken, element, position) {
             function insertTestDefinition(mtoken, element, position) {
                 var maskdef = opts.definitions[element], newBlockMarker = 0 == mtoken.matches.length;
                 var maskdef = opts.definitions[element], newBlockMarker = 0 == mtoken.matches.length;
                 if (position = void 0 != position ? position : mtoken.matches.length, maskdef && !escaped) {
                 if (position = void 0 != position ? position : mtoken.matches.length, maskdef && !escaped) {
+                    maskdef.placeholder = $.isFunction(maskdef.placeholder) ? maskdef.placeholder.call(this, opts) : maskdef.placeholder;
                     for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {
                     for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {
                         var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;
                         var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;
                         mtoken.matches.splice(position++, 0, {
                         mtoken.matches.splice(position++, 0, {
@@ -529,9 +530,7 @@
             input._valueSet(buffer.join("")), void 0 != caretPos && caret(input, caretPos);
             input._valueSet(buffer.join("")), void 0 != caretPos && caret(input, caretPos);
         }
         }
         function getPlaceholder(pos, test) {
         function getPlaceholder(pos, test) {
-            test = test || getTest(pos);
-            var placeholder = $.isFunction(test.placeholder) ? test.placeholder.call(this, opts) : test.placeholder;
-            return void 0 != placeholder ? placeholder : null == test.fn ? test.def : opts.placeholder.charAt(pos % opts.placeholder.length);
+            return test = test || getTest(pos), void 0 != test.placeholder ? test.placeholder : null == test.fn ? test.def : opts.placeholder.charAt(pos % opts.placeholder.length);
         }
         }
         function checkVal(input, writeOut, strict, nptvl) {
         function checkVal(input, writeOut, strict, nptvl) {
             var inputValue = void 0 != nptvl ? nptvl.slice() : input._valueGet().split("");
             var inputValue = void 0 != nptvl ? nptvl.slice() : input._valueGet().split("");
@@ -586,7 +585,7 @@
             data.caret = {
             data.caret = {
                 begin: begin,
                 begin: begin,
                 end: end
                 end: end
-            }, $(npt).data("_inputmask", data), $(npt).is(":visible") && (npt.scrollLeft = npt.scrollWidth, 
+            }, $(npt).data("_inputmask", data), $(npt).is(":visible") && (npt.scrollLeft = $(npt).css("font-size").replace("px", "") * end > npt.scrollWidth ? npt.scrollWidth : 0, 
             0 == opts.insertMode && begin == end && end++, npt.setSelectionRange ? (npt.selectionStart = begin, 
             0 == opts.insertMode && begin == end && end++, npt.setSelectionRange ? (npt.selectionStart = begin, 
             npt.selectionEnd = end) : npt.createTextRange && (range = npt.createTextRange(), 
             npt.selectionEnd = end) : npt.createTextRange && (range = npt.createTextRange(), 
             range.collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin), 
             range.collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin), 
@@ -1952,8 +1951,7 @@
                         if (!isValid) {
                         if (!isValid) {
                             var radix = "[" + $.inputmask.escapeRegex.call(this, opts.radixPoint) + "]";
                             var radix = "[" + $.inputmask.escapeRegex.call(this, opts.radixPoint) + "]";
                             isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder == opts.radixPoint && (isValid = {
                             isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder == opts.radixPoint && (isValid = {
-                                pos: pos,
-                                remove: pos
+                                caret: pos + 1
                             });
                             });
                         }
                         }
                         return isValid;
                         return isValid;

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


+ 3 - 3
js/jquery.inputmask.js

@@ -66,6 +66,7 @@
                     var newBlockMarker = mtoken.matches.length == 0;
                     var newBlockMarker = mtoken.matches.length == 0;
                     position = position != undefined ? position : mtoken.matches.length;
                     position = position != undefined ? position : mtoken.matches.length;
                     if (maskdef && !escaped) {
                     if (maskdef && !escaped) {
+                        maskdef["placeholder"] = $.isFunction(maskdef["placeholder"]) ? maskdef["placeholder"].call(this, opts) : maskdef["placeholder"];
                         var prevalidators = maskdef["prevalidator"], prevalidatorsL = prevalidators ? prevalidators.length : 0;
                         var prevalidators = maskdef["prevalidator"], prevalidatorsL = prevalidators ? prevalidators.length : 0;
                         for (var i = 1; i < maskdef.cardinality; i++) {
                         for (var i = 1; i < maskdef.cardinality; i++) {
                             var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator["validator"], cardinality = prevalidator["cardinality"];
                             var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator["validator"], cardinality = prevalidator["cardinality"];
@@ -951,8 +952,7 @@
             }
             }
             function getPlaceholder(pos, test) {
             function getPlaceholder(pos, test) {
                 test = test || getTest(pos);
                 test = test || getTest(pos);
-                var placeholder = $.isFunction(test["placeholder"]) ? test["placeholder"].call(this, opts) : test["placeholder"];
-                return placeholder != undefined ? placeholder : (test["fn"] == null ? test["def"] : opts.placeholder.charAt(pos % opts.placeholder.length));
+                return test["placeholder"] != undefined ? test["placeholder"] : (test["fn"] == null ? test["def"] : opts.placeholder.charAt(pos % opts.placeholder.length));
             }
             }
             function checkVal(input, writeOut, strict, nptvl) {
             function checkVal(input, writeOut, strict, nptvl) {
                 var inputValue = nptvl != undefined ? nptvl.slice() : input._valueGet().split('');
                 var inputValue = nptvl != undefined ? nptvl.slice() : input._valueGet().split('');
@@ -1025,7 +1025,7 @@
                         return;
                         return;
                     }
                     }
 
 
-                    npt.scrollLeft = npt.scrollWidth;
+                    npt.scrollLeft = ($(npt).css("font-size").replace("px", "") * end) > npt.scrollWidth ? npt.scrollWidth : 0;
                     if (opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode
                     if (opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode
                     if (npt.setSelectionRange) {
                     if (npt.setSelectionRange) {
                         npt.selectionStart = begin;
                         npt.selectionStart = begin;

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

@@ -242,7 +242,7 @@ Optional extensions on the jquery.inputmask base
                             var radix = "[" + $.inputmask.escapeRegex.call(this, opts.radixPoint) + "]";
                             var radix = "[" + $.inputmask.escapeRegex.call(this, opts.radixPoint) + "]";
                             isValid = new RegExp(radix).test(chrs);
                             isValid = new RegExp(radix).test(chrs);
                             if (isValid && maskset["validPositions"][pos] && maskset["validPositions"][pos]["match"].placeholder == opts.radixPoint) {
                             if (isValid && maskset["validPositions"][pos] && maskset["validPositions"][pos]["match"].placeholder == opts.radixPoint) {
-                                isValid = { "pos": pos, "remove": pos };
+                                isValid = { "caret": pos + 1 };
                             }
                             }
                         }
                         }
                         return isValid;
                         return isValid;

+ 72 - 0
qunit/tests_numeric.js

@@ -851,4 +851,76 @@ asyncTest("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12
         equal($("#testmask").val(), "0.12", "Result " + $("#testmask").val());
         equal($("#testmask").val(), "0.12", "Result " + $("#testmask").val());
         $("#testmask").remove();
         $("#testmask").remove();
     }, 0);
     }, 0);
+});
+
+test("inputmask(\"decimal\") - '8100000.00' - ManRueda", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', {
+        integerDigits: 6,
+        groupSeparator: '.',
+        autoGroup: true,
+        digits: 2,
+        radixPoint: ',',
+        groupSize: 3
+    });
+
+    $("#testmask").val("8100000.00");
+
+    equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
+    $("#testmask").remove();
+});
+
+test("inputmask(\"decimal\") - '8100000,00' - ManRueda", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', {
+        integerDigits: 6,
+        groupSeparator: '.',
+        autoGroup: true,
+        digits: 2,
+        radixPoint: ',',
+        groupSize: 3
+    });
+
+    $("#testmask").val("8100000,00");
+
+    equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
+    $("#testmask").remove();
+});
+
+test("inputmask(\"decimal\") - 8100000.00 - ManRueda", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', {
+        integerDigits: 6,
+        groupSeparator: '.',
+        autoGroup: true,
+        digits: 2,
+        radixPoint: ',',
+        groupSize: 3
+    });
+
+    $("#testmask").val(8100000.00);
+
+    equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
+    $("#testmask").remove();
+});
+
+test("inputmask(\"decimal\") - 810000.00 - ManRueda", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', {
+        integerDigits: 6,
+        groupSeparator: '.',
+        autoGroup: true,
+        digits: 2,
+        radixPoint: ',',
+        groupSize: 3
+    });
+
+    $("#testmask").val('810000.00');
+
+    equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
+    $("#testmask").remove();
 });
 });