You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap4 dropdown下拉菜单内输入框仅能输入数字如何解决

问题原因

Bootstrap 4 的 dropdown 组件默认开启了键盘导航能力,会监听下拉菜单内的所有按键事件:当按下字母、符号类按键时,组件会自动尝试匹配首字符对应的下拉菜单项,直接拦截了输入框的默认输入行为,最终呈现出只能输入数字的现象。

解决方法
  • 方法1:阻止输入框的按键事件冒泡(侵入性最小,推荐)
    仅拦截输入框的按键事件向上传递到 dropdown 组件,不影响下拉菜单原本的键盘导航功能,新增JS代码如下:
$('.dropdown-menu input').on('keydown keyup keypress', function (e) {
  e.stopPropagation();
});
  • 方法2:禁用当前 dropdown 的键盘导航
    给 dropdown 触发按钮添加 data-keyboard="false" 属性即可,无需额外写JS,适合不需要下拉菜单键盘导航的场景,修改后的按钮代码:
<button type="button" class="btn btn-light btn-sm dropdown-toggle" data-toggle="dropdown" data-boundary="viewport" data-keyboard="false">Spot</button>
  • 方法3:使用官方推荐的下拉表单结构
    将输入框放在 form 容器内,符合 Bootstrap 设计规范,组件会自动取消对表单内输入框的按键拦截,同时可以搭配内置样式优化输入框显示,修改后的下拉菜单代码:
<div class="dropdown-menu" style="overflow-y: auto; max-height: 300px;" data-loaded="true" data-selectedvalues="S">
  <form class="px-2 py-1">
    <input placeholder="Search...Type" type="search" class="form-control">
  </form>
  <button type="button" class="dropdown-item active" data-selectedvalues="S">Spot</button>
  <button type="button" class="dropdown-item" data-selectedvalues="T">Term</button>
</div>

内容的提问来源于stack exchange,提问作者user3193026

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:45:00