diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index e1b96d5d7fc..82ba081e0de 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -2362,6 +2362,8 @@ instance.web.search.AutoComplete = instance.web.Widget.extend({ ev.preventDefault(); return; } + // ENTER is caugth at KeyUp rather than KeyDown to avoid firing + // before all regular keystrokes have been processed if (ev.which === $.ui.keyCode.ENTER) { if (self.current_result && self.get_search_string().length) { self.select_item(ev); @@ -2382,6 +2384,9 @@ instance.web.search.AutoComplete = instance.web.Widget.extend({ }); this.$input.on('keydown', function (ev) { switch (ev.which) { + // TAB and direction keys are handled at KeyDown because KeyUp + // is not guaranteed to fire. + // See e.g. https://github.com/aef-/jquery.masterblaster/issues/13 case $.ui.keyCode.TAB: if (self.current_result && self.get_search_string().length) { self.select_item(ev);