diff --git a/js/dropdown.js b/js/dropdown.js index 5e6cefe843..1fbf74a317 100644 --- a/js/dropdown.js +++ b/js/dropdown.js @@ -99,6 +99,8 @@ if (!$parent.hasClass('open')) return + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index 40c428682f..e0d1df9700 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -350,4 +350,42 @@ $(function () { assert.ok(!$(document.activeElement).parent().is('.disabled'), '.disabled is not focused') }) + + QUnit.test('should not close the dropdown if the user clicks on a text field', function (assert) { + assert.expect(1) + var dropdownHTML = '