From: Johann-S Date: Sun, 31 Jan 2016 23:06:07 +0000 (+0100) Subject: Carousel - Do not prevent on keydown for input and textarea X-Git-Tag: v4.0.0-alpha.6~404^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=14ec4fdfc10a965477314078c1a9531a1d02fb8f;p=thirdparty%2Fbootstrap.git Carousel - Do not prevent on keydown for input and textarea --- diff --git a/js/src/carousel.js b/js/src/carousel.js index 34cab4391d..0ed4b7b5fe 100644 --- a/js/src/carousel.js +++ b/js/src/carousel.js @@ -229,11 +229,10 @@ const Carousel = (($) => { } _keydown(event) { - event.preventDefault() - if (/input|textarea/i.test(event.target.tagName)) { return } + event.preventDefault() switch (event.which) { case 37: this.prev(); break diff --git a/js/tests/unit/carousel.js b/js/tests/unit/carousel.js index d6d0186e15..8fac87d988 100644 --- a/js/tests/unit/carousel.js +++ b/js/tests/unit/carousel.js @@ -759,4 +759,36 @@ $(function () { .bootstrapCarousel('prev') assert.strictEqual($carousel.find('.carousel-item.active').attr('id'), 'one', 'carousel did not wrap around and stayed on 1st slide') }) + + QUnit.test('should not prevent keydown for inputs and textareas', function (assert) { + assert.expect(2) + var templateHTML = '' + var $template = $(templateHTML) + var done = assert.async() + $template.appendTo('#qunit-fixture') + var $inputText = $template.find('#inputText') + var $textArea = $template.find('#txtArea') + $template.bootstrapCarousel() + + var eventKeyDown = $.Event('keydown', { which: 65 }) // 65 for "a" + $inputText.on('keydown', function (event) { + assert.strictEqual(event.isDefaultPrevented(), false) + }) + $inputText.trigger(eventKeyDown) + + $textArea.on('keydown', function (event) { + assert.strictEqual(event.isDefaultPrevented(), false) + done() + }) + $textArea.trigger(eventKeyDown) + }) })