Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Merge requests
!16722
Close dropdowns when clicking on a file input within
Code
Review changes
Check out branch
Download
Email patches
Plain diff
Closed
Administrator
requested to merge
github/fork/archit/close-dropdown-menu-on-file-input-click
into
master
10 years ago
Overview
0
Commits
4
Pipelines
0
Changes
2
Created by: archit
Fixes
#16719 (closed)
0
0
Compare
master
master (base)
and
latest version
latest version
18c66ae2
4 commits,
2 years ago
2 files
+
20
-
1
Expand all files
Preferences
Preferences
File browser
List view
Tree view
Compare changes
Inline
Side-by-side
Show whitespace changes
Show one file at a time
Search (e.g. *.vue) (Ctrl+P)
j
s
tests
/unit
dropd
own.js
+19
-0
dropd
own.js
+1
-1
js/tests/unit/dropdown.js
+
19
-
0
Options
View file @ 18c66ae2
Show full file
@@ -388,4 +388,23 @@ $(function () {
assert
.
ok
(
$dropdown
.
parent
(
'
.btn-group
'
).
hasClass
(
'
open
'
),
'
dropdown menu is open
'
)
})
QUnit
.
test
(
'
should close the dropdown if the user clicks on a file-input
'
,
function
(
assert
)
{
assert
.
expect
(
1
)
var
dropdownHTML
=
'
<div class="btn-group">
'
+
'
<button type="button" data-toggle="dropdown">Dropdown</button>
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><input type="file" id="fileInput" /></li>
'
+
'
</ul>
'
+
'
</div>
'
var
$dropdown
=
$
(
dropdownHTML
)
.
appendTo
(
'
#qunit-fixture
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
bootstrapDropdown
()
.
trigger
(
'
click
'
)
$
(
'
#fileInput
'
).
trigger
(
'
click
'
)
assert
.
ok
(
!
$dropdown
.
parent
(
'
.btn-group
'
).
hasClass
(
'
open
'
),
'
dropdown menu is closed
'
)
})
})
js/dropdown.js
+
1
-
1
Options
View file @ 18c66ae2
Show full file
@@ -44,7 +44,7 @@
if
(
!
$parent
.
hasClass
(
'
open
'
))
return
if
(
e
&&
e
.
type
==
'
click
'
&&
/input|textarea/i
.
test
(
e
.
target
.
tagName
)
&&
$
.
contains
(
$parent
[
0
],
e
.
target
))
return
if
(
e
&&
e
.
type
==
'
click
'
&&
/input|textarea/i
.
test
(
e
.
target
.
tagName
)
&&
$
(
e
.
target
).
attr
(
'
type
'
)
!==
'
file
'
&&
$
.
contains
(
$parent
[
0
],
e
.
target
))
return
$parent
.
trigger
(
e
=
$
.
Event
(
'
hide.bs.dropdown
'
,
relatedTarget
))
Menu
Explore
Projects
Groups
Snippets