bootstrap-select插件实现下拉框搜索功能

工作上要用到在下拉框内实现搜索功能,原生的select标签是不能输入的,所以最终找到了bootstrap-select插件,功能十分强大,支持搜索,多选,分组选中等。

本文摘取自:

JS组件系列——再推荐一款好用的bootstrap-select组件,亲测还不错

bootstrap框架下下拉框select搜索功能

官方文档

bootstrap-select开源地址:https://github.com/silviomoreto/bootstrap-select

bootstrap-select使用示例:http://silviomoreto.github.io/bootstrap-select/examples/

bootstrap-select文档说明:http://silviomoreto.github.io/bootstrap-select/options/

简单示例

下面先附上我的代码,实现了搜索功能,可以直接复制下来查看效果。

<html>
<head>
    <script type="text/javascript" src="http://www.daimajiayuan.com/download/jquery/jquery-1.10.2.min.js"></script>
    <script type="text/javascript"
            src="http://cdn.bootcss.com/bootstrap-select/2.0.0-beta1/js/bootstrap-select.js"></script>
    <link rel="stylesheet" type="text/css"
          href="http://cdn.bootcss.com/bootstrap-select/2.0.0-beta1/css/bootstrap-select.css">
    <link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
    <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    <script type="text/javascript">
        $(window).on('load', function () {

            $('.selectpicker').selectpicker({
                'selectedText': 'cat'
            });

        });
    </script>
</head>
<body>
<div class="container">
    <form class="form-horizontal" role="form">
        <div class="form-group">
            <label for="bs3Select" class="col-lg-2 control-label">Test bootstrap 3 form</label>
            <div class="col-lg-10">
                <select id="bs3Select" class="selectpicker show-tick form-control" multiple data-live-search="true">
                    <option>cow</option>
                    <option>bull</option>
                    <option class="get-class" disabled>ox</option>
                    <optgroup label="test" data-subtext="another test" data-icon="icon-ok">
                        <option>ASD</option>
                        <option selected>Bla</option>
                        <option>Ble</option>
                    </optgroup>
                </select>
            </div>
        </div>
    </form>
</div>

</body>
</html>

附上上面js、css文件的地址:官方地址

使用方式

1.定义class属性selectpicker,就可以自动初始化

<select class="selectpicker">
    <option value="1">广东省</option>
    <option value="2">广西省</option>
    <option value="3">福建省</option>
    <option value="4">湖南省</option>
    <option value="5">山东省</option>                            
</select>

2.多选

<select class="selectpicker" multiple>
    <option value="1">广东省</option>
    <option value="2">广西省</option>
    <option value="3">福建省</option>
    <option value="4">湖南省</option>
    <option value="5">山东省</option>                            
</select>

3.给组件加搜索功能

<select class="selectpicker" multiple data-live-search="true">
    <option value="1">广东省</option>
    <option value="2">广西省</option>
    <option value="3">福建省</option>
    <option value="4">湖南省</option>
    <option value="5">山东省</option>                            
</select>

4.选项分组

<select class="form-control selectpicker" data-live-search="true" multiple>
      <optgroup label="广东省">
            <option value="1">广州市</option>
            <option value="2">深圳市</option>
            <option value="3">珠海市</option>
       </optgroup>   
       <optgroup label="广西">
             <option value="1">南宁市</option>
             <option value="2">柳州</option>
             <option value="3">桂林市</option>
       </optgroup>  
       <optgroup label="山东">
             <option value="1">烟台</option>
             <option value="2">青岛</option>
             <option value="3">济南</option>
        </optgroup>                          
</select>

5.设置最多选中项为2个

<select class="selectpicker" multiple data-live-search="true" data-max-options="2">
    <option value="1">广东省</option>
    <option value="2">广西省</option>
    <option value="3">福建省</option>
    <option value="4">湖南省</option>
    <option value="5">山东省</option>                            
</select>

6.缩略模式,比如当选中值大于3个的时候只显示选中项的个数,注意这个属性只对多选生效

<select class="selectpicker" multiple data-live-search="true" data-selected-text-format="count > 3">
    <option value="1">广东省</option>
    <option value="2">广西省</option>
    <option value="3">福建省</option>
    <option value="4">湖南省</option>
    <option value="5">山东省</option>                            
</select>

7.显示带颜色的标签

<select class="form-control selectpicker" title="请选择省份" multiple>
    <option data-content="<span class='label label-success'>广东省</span>">广东省</option>
    <option data-content="<span class='label label-info'>广西省</span>">广西省</option>
    <option data-content="<span class='label label-warning'>福建省</span>">福建省</option>
    <option data-content="<span class='label label-danger'>山东省</span>">山东省</option>
</select>

8.默认样式选择

<select class="selectpicker" data-style="btn-primary">
  ...
</select>

<select class="selectpicker" data-style="btn-info">
  ...
</select>

<select class="selectpicker" data-style="btn-success">
  ...
</select>

<select class="selectpicker" data-style="btn-warning">
  ...
</select>

<select class="selectpicker" data-style="btn-danger">
  ...
</select>

9.关于动态赋值。

bootstrap-select是默认只加载静态数据的,如果你想加载到通过Ajax等方式动态添加的数据,就在生成option后调用方法refresh来实现更新。

$('.selectpicker').selectpicker('refresh');

10.赋值取值

组件取值

var value = $('#sel').val(); 

如果是多选,这里得到的value变量是一个数组变量,形如 ['1','2','3']。

组件赋值

$('.selectpicker').selectpicker('val', '1');

在一些级联选择的使用场景中,经常需要在赋值的时候顺便触发一下组件的change事件,我们可以这么做。

$('.selectpicker').selectpicker('val', '1').trigger("change");

如果是多选的赋值,也是一样

$('.selectpicker').selectpicker('val', ['1','2','3']).trigger("change");

11.组件其他用法

全选

$('.selectpicker').selectpicker('selectAll'); 

反选

 $('.selectpicker').selectpicker('deselectAll'); 

适应手机模式

 $('.selectpicker').selectpicker('mobile'); 

组件禁用

$('.disable-example').prop('disabled', true);
$('.disable-example').selectpicker('refresh');

组件启用

$('.disable-example').prop('disabled', false);
$('.disable-example').selectpicker('refresh');

组件销毁

$('.selectpicker').selectpicker('destroy');

12.补充说明

使用bootstrap-select必须引入下面四个文件

如果你的项目里同时使用了H-ui,恭喜你,你要被坑了,因为这四个文件和h-ui.min.js和h-ui.min.css冲突,所以你可能遇到点击下拉框不弹窗的情况。建议用合理的顺序引入这几个文件,避免冲突。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Bootstrap Select 是一个基于 Bootstrap下拉框插件,它支持多选搜索功能多选下拉框可以让用户方便地选择多个选项,而搜索功能则可以帮助用户快速找到所需选项。此外,Bootstrap Select 还支持自定义样式和事件处理,可以满足各种需求。 ### 回答2: bootstrapselect是一种基于Bootstrap框架的下拉框插件,它提供了丰富多样的功能,可以帮助我们优化网站或应用的用户界面和交互体验。其中,多选下拉框bootstrapselect的一个重要组成部分,它可以让用户在一次选择中选取多个选项,方便快捷。 使用bootstrapselect多选下拉框,我们可以通过简单的设置来实现多选功能。首先,在HTML中引入相应的CSS和JS文件,然后在多选下拉框select标签上添加“multiple”属性,设置其为多选模式。接着,使用jQuery选择对应的下拉框元素,并调用bootstrapSelect()方法,即可将其转化为多选下拉框。同时,我们也可以通过设置不同的选项来自定义该下拉框的外观和功能,如设置样式、添加提示信息等等。 另外,值得注意的是,bootstrapselect多选下拉框还提供了一些常用的方法和事件,可以通过它们来灵活控制下拉框的行为和响应。比如,我们可以使用val()方法获取或设置下拉框的选中值;使用toggle()方法在选择和取消选择之间切换;使用hide()和show()方法控制下拉框的显示和隐藏;使用changed.bs.select事件监听下拉框的选中值的改变等等。 总之,bootstrapselect多选下拉框是一个非常实用和方便的功能,可以大大地提高用户体验和交互效果,同时也能够为开发者带来许多便捷和灵活性。我们需要根据实际需求,合理地使用该功能,并通过不断学习和实践,不断优化我们的网站和应用。 ### 回答3: Bootstrapselect多选下拉框是一种常见的UI组件,它能够让用户在下拉框中选择多个选项,同时还能够给出美观的用户界面和良好的用户体验。 Bootstrapselect多选下拉框具有多种功能和特性。首先,它能够让用户通过键入字母或数字来快速查找选项,这样可以提高用户选择的效率。其次,它还支持多种选项的排列方式,包括按字母排序、按数字排序以及按用户输入顺序排序等。此外,Bootstrapselect还提供了多种选项样式和主题,可以根据不同的场景和需求来选择不同的样式。 除此之外,Bootstrapselect还支持多种事件和回调函数,如选项改变事件、选中事件、取消选中事件等,这些事件和回调函数可以帮助用户更好地处理用户交互,并提供更加方便和灵活的编程方式。 总的来说,Bootstrapselect多选下拉框是一种非常实用的UI组件,它可以为用户提供方便、快捷、美观的多选选项,从而帮助用户更好地完成任务,并提高用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值