From 0dece7a71f4f3591c7d1fecb9dea7cba82c9624a Mon Sep 17 00:00:00 2001 From: Marcel Korpel Date: Sat, 1 Dec 2012 15:19:41 +0100 Subject: [PATCH] Set focus back to input field after clicking an item Test 'focus is still set' added Fixes issue #5933 --- js/bootstrap-typeahead.js | 1 + js/tests/unit/bootstrap-typeahead.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/js/bootstrap-typeahead.js b/js/bootstrap-typeahead.js index 2f3dc274f9..4f333e8c23 100644 --- a/js/bootstrap-typeahead.js +++ b/js/bootstrap-typeahead.js @@ -263,6 +263,7 @@ e.stopPropagation() e.preventDefault() this.select() + this.$element.focus() } , mouseenter: function (e) { diff --git a/js/tests/unit/bootstrap-typeahead.js b/js/tests/unit/bootstrap-typeahead.js index 16bdb91948..5e1183609a 100644 --- a/js/tests/unit/bootstrap-typeahead.js +++ b/js/tests/unit/bootstrap-typeahead.js @@ -162,17 +162,22 @@ $(function () { }) , typeahead = $input.data('typeahead') , changed = false + , focus = false + , blur = false $input.val('a') typeahead.lookup() $input.change(function() { changed = true }); + $input.focus(function() { focus = true; blur = false }); + $input.blur(function() { blur = true; focus = false }); $(typeahead.$menu.find('li')[2]).mouseover().click() equals($input.val(), 'ac', 'input value was correctly set') ok(!typeahead.$menu.is(':visible'), 'the menu was hidden') ok(changed, 'a change event was fired') + ok(focus && !blur, 'focus is still set') typeahead.$menu.remove() })