Browse Source

replace onKeyUp in favor of onKeyDown

Robin Herbots 11 years ago
parent
commit
a1ecf16e56

+ 3 - 3
README.md

@@ -496,10 +496,10 @@ The alias to use.
    $("#date").inputmask({ alias: "email"});
    $("#date").inputmask({ alias: "email"});
 ```
 ```
 
 
-#### onKeyUp
+#### onKeyDown
 Callback to implement autocomplete on certain keys for example
 Callback to implement autocomplete on certain keys for example
 
 
-Function arguments: buffer, opts  
+Function arguments: event, buffer, caretPos, opts  
 Function return: 
 Function return: 
 
 
 #### onBeforeMask
 #### onBeforeMask
@@ -554,7 +554,7 @@ You can also disable pasting a value by returning false in the onBeforePaste cal
 Executes before writing to the masked element 
 Executes before writing to the masked element 
 
 
 Use this to do some extra processing of the input.
 Use this to do some extra processing of the input.
-This can be usefull when implementing an alias, ex. decimal alias, autofill the digits when pressing tab.
+This can be usefull when implementing an alias, ex. decimal alias, autofill the digits when leaving the inputfield.
  
  
 Function arguments: event, buffer, caretPos, opts  
 Function arguments: event, buffer, caretPos, opts  
 Function return: command object (see Define custom definitions)
 Function return: command object (see Define custom definitions)

+ 3 - 3
dist/inputmask/jquery.inputmask.date.extensions.js

@@ -92,7 +92,7 @@
                 }
                 }
                 return currentyear;
                 return currentyear;
             },
             },
-            onKeyUp: function(e) {
+            onKeyDown: function(e) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();
@@ -256,7 +256,7 @@
                 val1: new RegExp("0[1-9]|1[012]")
                 val1: new RegExp("0[1-9]|1[012]")
             },
             },
             leapday: "02/29/",
             leapday: "02/29/",
-            onKeyUp: function(e) {
+            onKeyDown: function(e) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();
@@ -270,7 +270,7 @@
             placeholder: "yyyy/mm/dd",
             placeholder: "yyyy/mm/dd",
             alias: "mm/dd/yyyy",
             alias: "mm/dd/yyyy",
             leapday: "/02/29",
             leapday: "/02/29",
-            onKeyUp: function(e) {
+            onKeyDown: function(e) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();

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


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

@@ -799,7 +799,7 @@
                 var caretPos = caret(input);
                 var caretPos = caret(input);
                 caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);
                 caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);
             }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin != getMaskLength() ? pos.begin : pos.begin - 1)), 
             }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin != getMaskLength() ? pos.begin : pos.begin - 1)), 
-            ignorable = -1 != $.inArray(k, opts.ignorables);
+            opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 != $.inArray(k, opts.ignorables);
         }
         }
         function keypressEvent(e, checkval, writeOut, strict, ndx) {
         function keypressEvent(e, checkval, writeOut, strict, ndx) {
             var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
             var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
@@ -846,10 +846,6 @@
                 e.preventDefault();
                 e.preventDefault();
             }
             }
         }
         }
-        function keyupEvent(e) {
-            var buffer = ($(this), e.keyCode, getBuffer());
-            opts.onKeyUp.call(this, e, buffer, opts);
-        }
         function pasteEvent(e) {
         function pasteEvent(e) {
             var input = this, $input = $(input), inputValue = input._valueGet(!0), caretPos = caret(input);
             var input = this, $input = $(input), inputValue = input._valueGet(!0), caretPos = caret(input);
             if ("propertychange" == e.type && input._valueGet().length <= getMaskLength()) return !0;
             if ("propertychange" == e.type && input._valueGet().length <= getMaskLength()) return !0;
@@ -964,7 +960,7 @@
                     input._valueGet() == getBufferTemplate().join("") && $input.trigger("cleared"), 
                     input._valueGet() == getBufferTemplate().join("") && $input.trigger("cleared"), 
                     opts.showTooltip && $input.prop("title", getMaskSet().mask);
                     opts.showTooltip && $input.prop("title", getMaskSet().mask);
                 }).bind("complete.inputmask", opts.oncomplete).bind("incomplete.inputmask", opts.onincomplete).bind("cleared.inputmask", opts.oncleared), 
                 }).bind("complete.inputmask", opts.oncomplete).bind("incomplete.inputmask", opts.onincomplete).bind("cleared.inputmask", opts.oncleared), 
-                $el.bind("keydown.inputmask", keydownEvent).bind("keypress.inputmask", keypressEvent).bind("keyup.inputmask", keyupEvent), 
+                $el.bind("keydown.inputmask", keydownEvent).bind("keypress.inputmask", keypressEvent), 
                 androidfirefox || $el.bind("compositionstart.inputmask", compositionStartEvent).bind("compositionupdate.inputmask", compositionUpdateEvent).bind("compositionend.inputmask", compositionEndEvent), 
                 androidfirefox || $el.bind("compositionstart.inputmask", compositionStartEvent).bind("compositionupdate.inputmask", compositionUpdateEvent).bind("compositionend.inputmask", compositionEndEvent), 
                 "paste" === PasteEventType && $el.bind("input.inputmask", inputFallBackEvent), patchValueProperty(el);
                 "paste" === PasteEventType && $el.bind("input.inputmask", inputFallBackEvent), patchValueProperty(el);
                 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(el, el._valueGet(), opts) || el._valueGet() : el._valueGet();
                 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(el, el._valueGet(), opts) || el._valueGet() : el._valueGet();
@@ -1086,7 +1082,7 @@
                 clearIncomplete: !1,
                 clearIncomplete: !1,
                 aliases: {},
                 aliases: {},
                 alias: null,
                 alias: null,
-                onKeyUp: $.noop,
+                onKeyDown: $.noop,
                 onBeforeMask: void 0,
                 onBeforeMask: void 0,
                 onBeforePaste: void 0,
                 onBeforePaste: void 0,
                 onBeforeWrite: void 0,
                 onBeforeWrite: void 0,

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


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

@@ -797,7 +797,7 @@
                 var caretPos = caret(input);
                 var caretPos = caret(input);
                 caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);
                 caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);
             }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin != getMaskLength() ? pos.begin : pos.begin - 1)), 
             }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin != getMaskLength() ? pos.begin : pos.begin - 1)), 
-            ignorable = -1 != $.inArray(k, opts.ignorables);
+            opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 != $.inArray(k, opts.ignorables);
         }
         }
         function keypressEvent(e, checkval, writeOut, strict, ndx) {
         function keypressEvent(e, checkval, writeOut, strict, ndx) {
             var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
             var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
@@ -844,10 +844,6 @@
                 e.preventDefault();
                 e.preventDefault();
             }
             }
         }
         }
-        function keyupEvent(e) {
-            var buffer = ($(this), e.keyCode, getBuffer());
-            opts.onKeyUp.call(this, e, buffer, opts);
-        }
         function pasteEvent(e) {
         function pasteEvent(e) {
             var input = this, $input = $(input), inputValue = input._valueGet(!0), caretPos = caret(input);
             var input = this, $input = $(input), inputValue = input._valueGet(!0), caretPos = caret(input);
             if ("propertychange" == e.type && input._valueGet().length <= getMaskLength()) return !0;
             if ("propertychange" == e.type && input._valueGet().length <= getMaskLength()) return !0;
@@ -962,7 +958,7 @@
                     input._valueGet() == getBufferTemplate().join("") && $input.trigger("cleared"), 
                     input._valueGet() == getBufferTemplate().join("") && $input.trigger("cleared"), 
                     opts.showTooltip && $input.prop("title", getMaskSet().mask);
                     opts.showTooltip && $input.prop("title", getMaskSet().mask);
                 }).bind("complete.inputmask", opts.oncomplete).bind("incomplete.inputmask", opts.onincomplete).bind("cleared.inputmask", opts.oncleared), 
                 }).bind("complete.inputmask", opts.oncomplete).bind("incomplete.inputmask", opts.onincomplete).bind("cleared.inputmask", opts.oncleared), 
-                $el.bind("keydown.inputmask", keydownEvent).bind("keypress.inputmask", keypressEvent).bind("keyup.inputmask", keyupEvent), 
+                $el.bind("keydown.inputmask", keydownEvent).bind("keypress.inputmask", keypressEvent), 
                 androidfirefox || $el.bind("compositionstart.inputmask", compositionStartEvent).bind("compositionupdate.inputmask", compositionUpdateEvent).bind("compositionend.inputmask", compositionEndEvent), 
                 androidfirefox || $el.bind("compositionstart.inputmask", compositionStartEvent).bind("compositionupdate.inputmask", compositionUpdateEvent).bind("compositionend.inputmask", compositionEndEvent), 
                 "paste" === PasteEventType && $el.bind("input.inputmask", inputFallBackEvent), patchValueProperty(el);
                 "paste" === PasteEventType && $el.bind("input.inputmask", inputFallBackEvent), patchValueProperty(el);
                 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(el, el._valueGet(), opts) || el._valueGet() : el._valueGet();
                 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(el, el._valueGet(), opts) || el._valueGet() : el._valueGet();
@@ -1084,7 +1080,7 @@
                 clearIncomplete: !1,
                 clearIncomplete: !1,
                 aliases: {},
                 aliases: {},
                 alias: null,
                 alias: null,
-                onKeyUp: $.noop,
+                onKeyDown: $.noop,
                 onBeforeMask: void 0,
                 onBeforeMask: void 0,
                 onBeforePaste: void 0,
                 onBeforePaste: void 0,
                 onBeforeWrite: void 0,
                 onBeforeWrite: void 0,
@@ -1359,7 +1355,7 @@
                 }
                 }
                 return currentyear;
                 return currentyear;
             },
             },
-            onKeyUp: function(e) {
+            onKeyDown: function(e) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();
@@ -1523,7 +1519,7 @@
                 val1: new RegExp("0[1-9]|1[012]")
                 val1: new RegExp("0[1-9]|1[012]")
             },
             },
             leapday: "02/29/",
             leapday: "02/29/",
-            onKeyUp: function(e) {
+            onKeyDown: function(e) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();
@@ -1537,7 +1533,7 @@
             placeholder: "yyyy/mm/dd",
             placeholder: "yyyy/mm/dd",
             alias: "mm/dd/yyyy",
             alias: "mm/dd/yyyy",
             leapday: "/02/29",
             leapday: "/02/29",
-            onKeyUp: function(e) {
+            onKeyDown: function(e) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();

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


+ 3 - 3
js/jquery.inputmask.date.extensions.js

@@ -75,7 +75,7 @@ Optional extensions on the jquery.inputmask base
 
 
                 return currentyear;
                 return currentyear;
             },
             },
-            onKeyUp: function (e, buffer, opts) {
+            onKeyDown: function (e, buffer, caretPos, opts) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();
@@ -284,7 +284,7 @@ Optional extensions on the jquery.inputmask base
                 val1: new RegExp("0[1-9]|1[012]") //month
                 val1: new RegExp("0[1-9]|1[012]") //month
             },
             },
             leapday: "02/29/",
             leapday: "02/29/",
-            onKeyUp: function (e, buffer, opts) {
+            onKeyDown: function (e, buffer, caretPos, opts) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();
@@ -298,7 +298,7 @@ Optional extensions on the jquery.inputmask base
             placeholder: "yyyy/mm/dd",
             placeholder: "yyyy/mm/dd",
             alias: "mm/dd/yyyy",
             alias: "mm/dd/yyyy",
             leapday: "/02/29",
             leapday: "/02/29",
-            onKeyUp: function (e, buffer, opts) {
+            onKeyDown: function (e, buffer, caretPos, opts) {
                 var $input = $(this);
                 var $input = $(this);
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                 if (e.ctrlKey && e.keyCode == $.inputmask.keyCode.RIGHT) {
                     var today = new Date();
                     var today = new Date();

+ 3 - 8
js/jquery.inputmask.js

@@ -1432,7 +1432,7 @@
                         }, 0);
                         }, 0);
                     }
                     }
                 }
                 }
-
+                opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts);
                 ignorable = $.inArray(k, opts.ignorables) != -1;
                 ignorable = $.inArray(k, opts.ignorables) != -1;
             }
             }
             function keypressEvent(e, checkval, writeOut, strict, ndx) {
             function keypressEvent(e, checkval, writeOut, strict, ndx) {
@@ -1523,10 +1523,6 @@
                     }
                     }
                 }
                 }
             }
             }
-            function keyupEvent(e) {
-                var $input = $(this), input = this, k = e.keyCode, buffer = getBuffer();
-                opts.onKeyUp.call(this, e, buffer, opts);
-            }
             function pasteEvent(e) {
             function pasteEvent(e) {
                 var input = this, $input = $(input), inputValue = input._valueGet(true), caretPos = caret(input);
                 var input = this, $input = $(input), inputValue = input._valueGet(true), caretPos = caret(input);
                 //paste event for IE8 and lower I guess ;-)
                 //paste event for IE8 and lower I guess ;-)
@@ -1781,8 +1777,7 @@
                     ).bind('cleared.inputmask', opts.oncleared);
                     ).bind('cleared.inputmask', opts.oncleared);
 
 
                     $el.bind("keydown.inputmask", keydownEvent
                     $el.bind("keydown.inputmask", keydownEvent
-                    ).bind("keypress.inputmask", keypressEvent
-                    ).bind("keyup.inputmask", keyupEvent);
+                    ).bind("keypress.inputmask", keypressEvent);
 
 
                     if (!androidfirefox) {
                     if (!androidfirefox) {
                         $el.bind("compositionstart.inputmask", compositionStartEvent
                         $el.bind("compositionstart.inputmask", compositionStartEvent
@@ -1979,7 +1974,7 @@
                 clearIncomplete: false, //clear the incomplete input on blur
                 clearIncomplete: false, //clear the incomplete input on blur
                 aliases: {}, //aliases definitions => see jquery.inputmask.extensions.js
                 aliases: {}, //aliases definitions => see jquery.inputmask.extensions.js
                 alias: null,
                 alias: null,
-                onKeyUp: $.noop, //callback to implement autocomplete on certain keys for example
+                onKeyDown: $.noop, //callback to implement autocomplete on certain keys for example. args => event, buffer, caretPos, opts
                 onBeforeMask: undefined, //executes before masking the initial value to allow preprocessing of the initial value.  args => initialValue, opts => return processedValue
                 onBeforeMask: undefined, //executes before masking the initial value to allow preprocessing of the initial value.  args => initialValue, opts => return processedValue
                 onBeforePaste: undefined, //executes before masking the pasted value to allow preprocessing of the pasted value.  args => pastedValue, opts => return processedValue
                 onBeforePaste: undefined, //executes before masking the pasted value to allow preprocessing of the pasted value.  args => pastedValue, opts => return processedValue
                 onBeforeWrite: undefined, //executes before writing to the masked element. args => event, opts
                 onBeforeWrite: undefined, //executes before writing to the masked element. args => event, opts