]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Collapse - do not prevent event for input and textarea
authorJohann <johann.servoire@gmail.com>
Mon, 27 Mar 2017 08:08:39 +0000 (10:08 +0200)
committerGitHub <noreply@github.com>
Mon, 27 Mar 2017 08:08:39 +0000 (10:08 +0200)
js/src/collapse.js
js/tests/unit/collapse.js

index 13c44502ca6bd9662862735ed64f920d67a055fc..6f09fcadd8d1dc7e742c79187a83d6d4e61c027a 100644 (file)
@@ -363,7 +363,9 @@ const Collapse = (($) => {
    */
 
   $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault()
+    if (/input|textarea/i.test(event.target.tagName)) {
+      event.preventDefault()
+    }
 
     const target = Collapse._getTargetFromElement(this)
     const data   = $(target).data(DATA_KEY)
index a7bcaad9cd976afcd2765d3a99a690079188f19a..01bc5adb96a7597044795f4ac60a0c75745dedac 100644 (file)
@@ -513,4 +513,20 @@ $(function () {
     })
     $target.trigger($.Event('click'))
   })
+
+  QUnit.test('should not prevent event for input', function (assert) {
+    assert.expect(2)
+    var done = assert.async()
+    var $target = $('<input type="checkbox" data-toggle="collapse" data-target="#collapsediv1" />').appendTo('#qunit-fixture')
+
+    $('<div id="collapsediv1"/>')
+      .appendTo('#qunit-fixture')
+      .on('shown.bs.collapse', function () {
+        assert.ok($target.attr('aria-expanded') === 'true')
+        assert.ok($target.prop('checked'))
+        done()
+      })
+
+    $target.trigger($.Event('click'))
+  })
 })