mirror of
https://github.com/twbs/bootstrap.git
synced 2025-11-13 00:04:29 -05:00
fix: prevent dropdown toggle on Enter in form input (Bootstrap #41354 workaround)
This commit is contained in:
parent
e392fc500e
commit
b3d0204067
@ -17,3 +17,22 @@
|
||||
}, false)
|
||||
})
|
||||
})()
|
||||
|
||||
// Workaround for Bootstrap dropdown toggling on Enter in form inputs
|
||||
// See: https://github.com/twbs/bootstrap/issues/41354
|
||||
|
||||
document.addEventListener('keydown', function(event) {
|
||||
if (event.key === 'Enter') {
|
||||
if (
|
||||
event.target.tagName === 'INPUT' &&
|
||||
event.target.form
|
||||
) {
|
||||
// Find all dropdown toggles after the input in the same form
|
||||
let dropdowns = Array.from(event.target.form.querySelectorAll('[data-bs-toggle="dropdown"]'));
|
||||
let inputIndex = Array.from(event.target.form.elements).indexOf(event.target);
|
||||
if (dropdowns.some(btn => Array.from(event.target.form.elements).indexOf(btn) > inputIndex)) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, true);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user