Bootstrap可多选(带checkbox)、搜索的下拉列表
时间: 2023-09-12 16:08:17 浏览: 48
是的,Bootstrap提供了一个称为"Dropdowns"的组件,可以实现带有复选框和搜索功能的下拉列表。你可以使用Bootstrap的Dropdowns组件来创建这样的下拉列表。以下是一个简单的示例代码:
```html
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
选择
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<input class="form-control form-control-sm" type="text" placeholder="搜索...">
<div class="dropdown-divider"></div>
<a class="dropdown-item">
<input type="checkbox"> 选项1
</a>
<a class="dropdown-item">
<input type="checkbox"> 选项2
</a>
<a class="dropdown-item">
<input type="checkbox"> 选项3
</a>
</div>
</div>
```
在这个示例中,我们使用了Bootstrap的按钮和下拉菜单样式,并在下拉菜单中添加了一个输入框和多个带有复选框的选项。你可以根据需要修改和扩展这个示例,以满足你的具体需求。
相关推荐



Bootstrap提供了一个组件可以实现多选下拉菜单。你可以使用下面的代码实现:
<button class="btn btn-secondary dropdown-toggle" type="button" id="multiSelectDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
多选下拉菜单
</button>
<input type="checkbox" name="option1" value="option1"> 选项 1
<input type="checkbox" name="option2" value="option2"> 选项 2
<input type="checkbox" name="option3" value="option3"> 选项 3
此代码将创建一个按钮,点击按钮将显示多选下拉菜单。菜单中的每个选项都包含一个复选框。





Bootstrap 的下拉菜单默认只支持单选,如果需要实现多选,可以借助 JavaScript 实现。以下是一种实现方式:
首先,在 HTML 中定义一个下拉菜单,给它一个 id:
html
<button class="btn btn-secondary dropdown-toggle" type="button" id="multiSelectDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
选择...
</button>
选项1
选项2
选项3
选项4
注意每个选项都有一个 data-value 属性,用来存储选项的值。
然后在 JavaScript 中监听下拉菜单的点击事件,以实现多选功能:
javascript
var selectedValues = []; // 存储已选中的值
$('.dropdown-menu a').click(function(event) {
event.preventDefault(); // 阻止链接的默认行为
var value = $(this).data('value');
if (selectedValues.includes(value)) {
// 如果已经选中了这个选项,则取消选中
selectedValues.splice(selectedValues.indexOf(value), 1);
$(this).removeClass('active');
} else {
// 否则选中这个选项
selectedValues.push(value);
$(this).addClass('active');
}
// 更新下拉菜单的文本
var buttonText = '';
if (selectedValues.length > 0) {
buttonText = selectedValues.join(', ');
} else {
buttonText = '选择...';
}
$('#multiSelectDropdown').text(buttonText);
});
这段代码中,我们定义了一个 selectedValues 数组来存储已选中的值。每次点击下拉菜单中的选项时,我们先获取该选项的值,然后判断它是否已经被选中。如果已经选中,则将其从 selectedValues 数组中删除,并将该选项的样式移除;否则将其添加到 selectedValues 数组中,并添加样式表示选中状态。最后,我们更新下拉菜单按钮的文本,显示已选中的选项。

Bootstrap 3 中的下拉列表可以使用 和 标记结合使用。使用 class="dropdown" 和 class="dropdown-menu" 将其转换为下拉列表。
以下是一个例子:
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
下拉菜单
</button>
选项 1
选项 2
选项 3
分隔线后的选项
在这个例子中,一个 元素被用作外部容器,包含一个按钮,和一个下拉列表。按钮使用 class="btn btn-default dropdown-toggle" 和 data-toggle="dropdown" 来触发下拉列表的显示/隐藏。
下拉列表本身被标记为 ,使用 class="dropdown-menu" 来指定它是一个下拉列表。
在下拉列表中,每个选项都被标记为 ,并使用 元素作为链接。
分隔线可以使用 标记添加。
注意,在这个例子中,一个带有 class="caret" 的 元素被添加到按钮上,用于指示下拉列表的存在。



在Bootstrap中,可以通过监听shown.bs.dropdown事件来实现下拉列表选中事件的响应,并且可以在事件处理函数中使用text()方法获取选中项的文本内容,进而将选中项的文本内容显示在页面上。
下面是一个示例代码:
html
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
下拉菜单
</button>
选项一
选项二
选项三
javascript
$(document).on('shown.bs.dropdown', '.dropdown', function () {
var selected = $(this).find('li.active');
var text = selected.text();
$(this).find('.dropdown-toggle').html(text + ' ');
});
在上述代码中,我们在shown.bs.dropdown事件处理函数中获取到选中的列表项元素,并通过text()方法获取选中项的文本内容,最后将文本内容设置为下拉菜单按钮的文本内容。这样,当选中项变化时,按钮上显示的文本内容也会随之改变。




