ソースを参照

quick fix postformat onkeyup

Robin Herbots 11 年 前
コミット
f2f90bc71f
2 ファイル変更8 行追加2 行削除
  1. 2 0
      js/jquery.inputmask.js
  2. 6 2
      js/jquery.inputmask.numeric.extensions.js

+ 2 - 0
js/jquery.inputmask.js

@@ -1155,6 +1155,7 @@
             function keyupEvent(e) {
             function keyupEvent(e) {
                 var $input = $(this), input = this, k = e.keyCode, buffer = getBuffer();
                 var $input = $(this), input = this, k = e.keyCode, buffer = getBuffer();
 
 
+                var currentCaretPos = caret(input);
                 var keyupResult = opts.onKeyUp.call(this, e, buffer, opts);
                 var keyupResult = opts.onKeyUp.call(this, e, buffer, opts);
                 if (keyupResult && keyupResult["refreshFromBuffer"] === true) {
                 if (keyupResult && keyupResult["refreshFromBuffer"] === true) {
                     getMaskSet()["validPositions"] = {};
                     getMaskSet()["validPositions"] = {};
@@ -1162,6 +1163,7 @@
                     refreshFromBuffer(0, getBuffer().length);
                     refreshFromBuffer(0, getBuffer().length);
                     resetMaskSet(true);
                     resetMaskSet(true);
                     writeBuffer(input, getBuffer());
                     writeBuffer(input, getBuffer());
+                    caret(input, currentCaretPos.begin, currentCaretPos.end);
                 }
                 }
                 if (k == opts.keyCode.TAB && opts.showMaskOnFocus) {
                 if (k == opts.keyCode.TAB && opts.showMaskOnFocus) {
                     if ($input.hasClass('focus.inputmask') && input._valueGet().length == 0) {
                     if ($input.hasClass('focus.inputmask') && input._valueGet().length == 0) {

+ 6 - 2
js/jquery.inputmask.numeric.extensions.js

@@ -100,8 +100,12 @@ Optional extensions on the jquery.inputmask base
                 return { pos: reformatOnly ? pos : newPos, "refreshFromBuffer": needsRefresh };
                 return { pos: reformatOnly ? pos : newPos, "refreshFromBuffer": needsRefresh };
             },
             },
             onKeyDown: function (e, buffer, opts) {
             onKeyDown: function (e, buffer, opts) {
-                var $input = $(this), input = this;
-                if (opts.autoGroup && e.keyCode == opts.keyCode.DELETE || e.keyCode == opts.keyCode.BACKSPACE) {
+                if (opts.autoGroup && (e.keyCode == opts.keyCode.DELETE || e.keyCode == opts.keyCode.BACKSPACE)) {
+                    return opts.postFormat(buffer, 0, true, opts);
+                }
+            },
+            onKeyUp: function (e, buffer, opts) {
+                if (opts.autoGroup && (e.keyCode == 110 || e.keyCode == 188 || e.keyCode == 190)) {
                     return opts.postFormat(buffer, 0, true, opts);
                     return opts.postFormat(buffer, 0, true, opts);
                 }
                 }
             },
             },