diff --git a/js/bootstrap-typeahead.js b/js/bootstrap-typeahead.js index 9b123fb3fb..387fd2a6d4 100644 --- a/js/bootstrap-typeahead.js +++ b/js/bootstrap-typeahead.js @@ -217,7 +217,7 @@ } , keydown: function (e) { - this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27]) + this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27]) this.move(e) } diff --git a/js/tests/unit/bootstrap-typeahead.js b/js/tests/unit/bootstrap-typeahead.js index 0f7aed27dd..0cf26b3153 100644 --- a/js/tests/unit/bootstrap-typeahead.js +++ b/js/tests/unit/bootstrap-typeahead.js @@ -143,10 +143,19 @@ $(function () { equals(typeahead.$menu.find('.active').length, 1, 'one item is active') ok(typeahead.$menu.find('li').first().hasClass('active'), "first item is active") + // simulate entire key pressing event $input.trigger({ type: 'keydown' , keyCode: 40 }) + .trigger({ + type: 'keypress' + , keyCode: 40 + }) + .trigger({ + type: 'keyup' + , keyCode: 40 + }) ok(typeahead.$menu.find('li').first().next().hasClass('active'), "second item is active") @@ -155,6 +164,14 @@ $(function () { type: 'keydown' , keyCode: 38 }) + .trigger({ + type: 'keypress' + , keyCode: 38 + }) + .trigger({ + type: 'keyup' + , keyCode: 38 + }) ok(typeahead.$menu.find('li').first().hasClass('active'), "first item is active") @@ -202,4 +219,4 @@ $(function () { typeahead.$menu.remove() }) -}) \ No newline at end of file +})