ソースを参照

partial fix for numericinput

Robin Herbots 7 年 前
コミット
6f9525c017
2 ファイル変更13 行追加17 行削除
  1. 5 5
      js/inputmask.js
  2. 8 12
      js/inputmask.numeric.extensions.js

+ 5 - 5
js/inputmask.js

@@ -2465,11 +2465,11 @@
 
                 function isTemplateMatch(ndx, charCodes) {
                     var charCodeNdx = getMaskTemplate(true, 0, false).slice(ndx, seekNext(ndx)).join("").replace(/'/g, "").indexOf(charCodes);
-                    return charCodeNdx !== -1 && !isMask(charCodeNdx)
-                        && (getTest(charCodeNdx).match.nativeDef === charCodes.charAt(0)
-                            || (getTest(charCodeNdx).match.fn === null && getTest(charCodeNdx).match.nativeDef === ("'" + charCodes.charAt(0)))
-                            || (getTest(charCodeNdx).match.nativeDef === " " && (getTest(charCodeNdx + 1).match.nativeDef === charCodes.charAt(0)
-                                    || (getTest(charCodeNdx + 1).match.fn === null && getTest(charCodeNdx + 1).match.nativeDef === ("'" + charCodes.charAt(0))))));
+                    return charCodeNdx !== -1 && !isMask(ndx)
+                        && (getTest(ndx).match.nativeDef === charCodes.charAt(0)
+                            || (getTest(ndx).match.fn === null && getTest(ndx).match.nativeDef === ("'" + charCodes.charAt(0)))
+                            || (getTest(ndx).match.nativeDef === " " && (getTest(ndx + 1).match.nativeDef === charCodes.charAt(0)
+                                    || (getTest(ndx + 1).match.fn === null && getTest(ndx + 1).match.nativeDef === ("'" + charCodes.charAt(0))))));
                 }
 
                 resetMaskSet();

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

@@ -521,18 +521,14 @@
                 return processValue;
             },
             isComplete: function (buffer, opts) {
-                var maskedValue = buffer.join(""),
-                    bufClone = buffer.slice();
-                //verify separator positions
-                if (bufClone.join("") !== maskedValue) return false;
-
-                var processValue = maskedValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-");
-                processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), "");
-                processValue = processValue.replace(opts.prefix, "");
-                processValue = processValue.replace(opts.suffix, "");
-                processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator) + "([0-9]{3})", "g"), "$1");
-                if (opts.radixPoint === ",") processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".");
-                return isFinite(processValue);
+                var maskedValue = (opts.numericInput ? buffer.reverse() : buffer).join("");
+                maskedValue = maskedValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-");
+                maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), "");
+                maskedValue = maskedValue.replace(opts.prefix, "");
+                maskedValue = maskedValue.replace(opts.suffix, "");
+                maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator) + "([0-9]{3})", "g"), "$1");
+                if (opts.radixPoint === ",") maskedValue = maskedValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".");
+                return isFinite(maskedValue);
             },
             onBeforeMask: function (initialValue, opts) {
                 opts.isNegative = undefined;