bootstrap-select组件,亲测还不错

2023-11-04

前言:之前分享过两篇bootstrap下拉框的组件:JS组件系列——两种bootstrap multiselect组件大比拼  和 JS组件系列——Bootstrap Select2组件使用小结 ,收到很多园友的关注和提问,最后总结这两篇里面的下拉框组件都存在一些大大小小的问题,比如两种bootstrap mutiselect组件,界面渲染效果略差;再比如select2一些兼容性问题、多选的取值赋值等问题都困扰着博主以及很多园友,项目里面的下拉框很早就替换为今天介绍的这款组件,所以今天介绍给大家,让大家多一个选择也好!感谢大家的持续关注!

说点题外话。本来这篇早就准备写了,不料最近项目准备走前端化开发路线,可忙坏博主了,一时间,Node.js、npm、webpack、react、react-router、ant.design等等技术都得学呀,脑子真是个好东西,能够一下子容纳这么多新知识,虽然各种不适应,但时间一长就慢慢习惯了,所幸博主经常关注这方面的技术,所以学起来并没有那么吃力。关于vue和react,很多群友都讨论过它们的优势和劣势,其实博主觉得说不上哪个组件更优,关键得看项目适应哪种生态,我们选用react很大一部分原因就是看中了ant.design的效果和丰富的组件库。好了,再说就跑题了,以后博主分享搭建前端环境的时候再来细说。

本文原创地址:http://www.cnblogs.com/landeanfen/p/7457283.html

一、组件开源地址以及API说明

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/

二、组件效果示例

一睹初容

多选效果

可配置搜索功能

分组选中

设置最多选中项为2个

 

 自定义说明Title,比如我们定义为“请选择省份”

 某些情况下如果多选的数量比较多,我们可以显示“缩略模式”。比如当选择了两项以上的时候

自定义样式

显示图标加文字

显示带颜色的标签

展开最多显示可配置的个数,不如最多显示3项

 全选和反选

以上都是些常用功能,更多效果可以查看官方示例!

三、使用示例

1、基础示例

既然是bootstrap-select,组件肯定是依赖bootstrap的,而bootstrap又是依赖jquery的,所以使用组件必须引用如下文件。

<link href="Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="Content/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet" />

<script src="Content/jquery-1.9.1.min.js"></script>
<script src="Content/bootstrap/js/bootstrap.min.js"></script>
<script src="Content/bootstrap-select/js/bootstrap-select.min.js"></script>
<script src="Content/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>

最后一个文件 defaults-zh_CN.min.js 非必需,是组件中文化的时候才需要引用。

使用就更加简单了,不用任何已经js,直接使用class就可以初始化。

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

给一个select标签加上selectpicker样式即可。

多选就不用多说了

<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>

2、其他效果示例

上面是最简单的使用,下面就将一些常用的效果给出代码示例,高手请直接跳过此段。

给组件加搜索功能

<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>

选项分组

<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>

设置最多选中项为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>

缩略模式,比如当选中值大于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>

显示带颜色的标签

 <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>

默认样式选择

<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>

3、组件取值赋值

上面都是组件的初始化的一些东西,一般情况下,我们需要对组件进行取值和赋值,我们应该如何操作呢。

3.1、组件取值

关于组件取值保持原生的jquery方法,比如 var value = $('#sel').val(); 这样是不是很简单,需要注意的是,如果是多选,这里得到的value变量是一个数组变量,形如 ['1','2','3']。

3.2、组件赋值

组件赋值就需要稍微变换一下了,如果你直接 $('#sel').val('1'); 这样赋值将会无效,正确的赋值方法为:

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

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

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

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

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

4、组件其他用法

全选: $('.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');

5、组件封装

上面关于组件的初始化介绍了那么多,都是通过class='selectpicker'去做初始化的,很多情况下,我们的select的option都是动态获取,然后再初始化的,于是乎博主仔细寻找api,看里面是否有远程获取数据,很遗憾,组件没有支持这种远程获取数据的方法。没关系,我们自己封装一个ajax请求,然后动态构造option又有多难呢?这里又得提一下原来那篇封装js组件的文章了,我们按照那篇文章的思路封装一个不就好了。以下给出一个参考。

  bootstrapSelect

 这样封装之后,我们直接使用如下代码即可初始化组件。

$('#sel').bootstrapSelect({
    url:'/a/b',
    data: {},
    valueField: 'value',
    textField: 'text',
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bootstrap-select组件,亲测还不错 的相关文章

  • 1.2 DICOM成像协议剖析

    以下链接是本系列文章 不足之处 可在评论区讨论 系列文章 1 1 DICOM协议简介及应用 1 2 DICOM成像协议剖析 1 3 DICOM成像协议实现思路 1 4 DICOM图像CT值计算 1 5 DICOM图像CT值转RGB 1 6

随机推荐

  • linux+性能排查,Linux系统性能排查基础

    此文已由作者李晶授权网易云社区发布 欢迎访问 上一期运维季刊中 我们重点从CPU方面分析了Linux系统性能瓶颈 除了CPU之外 内存 IO和网络也是常见的造成系统出现问题的根源 本篇我们继续介绍如何从这三个子系统来排查Linux整个系统的
  • Redis配置数据持久化---APPEND ONLY MODE

    Redis可以实现数据的持久化存储 即将数据保存到磁盘上 Redis的持久化存储提供两种方式 RDB与AOF RDB是默认配置 AOF需要手动开启 现在Redis的配置中默认是关闭AOF模式的 如果要开启AOF模式 修改Redis的配置文件
  • [5机器学习]计算机视觉的世界-卷积神经网络(CNNs)

    我们知道 数据不仅包含文字 数字 还包含图片 视频等 如何更好地查看 识别和解释图像和视频的内容 就像人类视觉一样 一直是目前人工智能的主要研究方向 机器学习无疑是现代数据科学的核心 在经历了几十年回归 分类 决策树 异常检测的沉淀后 数据
  • 期货投资者教育系列丛书 铝

    铝是一种轻金属 其化合物在自然界中分布极广 地壳中铝的资源约为400 500 亿吨 仅次于氧和硅 具第三位 在金属品种中 仅次于钢铁 为第二大类金属 铝具有特殊的化学 物理特性 不仅重量轻 质地坚 而且具有良好的延展性 导电性 导热性 耐热
  • 2022春招前端最新面试题分享(航天宏图)

    航天宏图面经 公司及岗位信息 公司 航天宏图 岗位 前端校招 地点 北京 薪资 10k 15k 面试结果 二面必须让线下面试 去不了 一面 2022 04 21 自我介绍 为什么没有在实习公司转正 实习对于你最大的收获 WebSocket在
  • qt connect 无效_QT 信号槽connect写法

    先看下示例 QPushButton btn new QPushButton 方式一 老式写法 connect btn SIGNAL clicked this SLOT close 方式二 Qt5后新写法 connect btn QPushB
  • Vue父组件子组件的通信方式20种(全网最全总结)

    目录 一 常用 Props 父组件 子组件 emit和 on 父组件 子组件 parent和 children 父组件 子组件 attrs和 listeners 父组件 子组件 provide和inject 父组件 子组件 二 其他探索 E
  • Ubuntu安装Visual Studio Code

    一 Visual Studio Code介绍 Visual Studio Code 简称VS Code 是一款由微软开发的跨平台代码编辑器 它支持多种编程语言 包括C C Java JavaScript Python等等 VS Code具有
  • 快乐E栈项目实战第五阶段

    快乐E栈项目实战第五阶段 文章目录 快乐E栈项目实战第五阶段 1 前言 2 功能分析 3 简单协议设计 4 代码 1 服务端 2 客户端 5 结果 服务端 客户端 1 前言 学习完网络编程了 我们可以试着开发一个服务端程序 将快递信息发送到
  • I帧、P帧、B帧

    I帧 P帧 B帧 简单地说 I帧是关键帧 属于帧内压缩 就是和AVI的压缩是一样的 P是向前搜索的意思 B是双向搜索 他们都是基于I帧来压缩数据 I帧表示关键帧 你可以理解为这一帧画面的完整保留 解码时只需要本帧数据就可以完成 因为包含完整
  • 华为OD机试真题-最左侧冗余覆盖子串【2023.Q1】

    题目描述 给定两个字符串 s1 和 s2 和正整数k 其中 s1 长度为 n1 s2 长度为 n2 在s2中选一个子串 满足 1 该子串长度为n1 k 2 该子串中包含s1中全部字母 3 该子串每个字母出现次数不小于s1中对应的字母 我们称
  • 4万字 全面解读数据中台、数据仓库、数据湖等概念!建议收藏!

    作者丨修鹏李 建议阅读需50分钟 如今 随着诸如互联网以及物联网等技术的不断发展 越来越多的数据被生产出来 据统计 每天大约有超过2 5亿亿字节的各种各样数据产生 这些数据需要被存储起来并且能够被方便的分析和利用 随着大数据技术的不断更新和
  • JWT登录过期自动刷新方案与token泄漏解决方案

    概念 简单来说JWT就是通过一定规范来生成token 再用解密算法解密token 就可以获取用户信息了 优缺点 优点 避免重复查库 存储在客户端 不占用服务端资源 缺点 token是经过base64编码 所以可以解码 因此token加密前的
  • 微博数据处理——处理僵尸用户数据集(二)

    获取僵尸用户数据集可见上文 https blog csdn net weixin 43906500 article details 116447858 1 数据集展示 僵尸数据集如下所示 2 处理数据集 编写处理代码 将所需训练数据保存为c
  • Vue 集成 stylus和stylus-loader

    stylus和stylus loader安装 cnpm i stylus S cnpm i stylus loader S stylus使用 一 语法不再需要括号 相比之前语法简洁
  • 家庭个人服务器的搭建之路--非傻瓜式描述

    本文记录了个人亲身搭建samba服务的经历 对于软件如何安装之类的内容没有详细讲解 需要各位自行解决软件安装问题 本文主要讲解了Samba服务器外网可访问的拓扑架构以及实现方式 我的服务器环境描述 一台ubuntu主机 OS使用的是Ubun
  • MyBatis报错MySQLIntegrityConstraintViolationException:Column "某一个列名" cannot be null

    Integrity 完整性 Constraint 约束 Violation违反 即违反完整性约束异常 列名不能为空 the error occurred while setting parameters
  • 23.8.18.查询接口时候,有低代码的要根据低代码来查询接口,千万不要盲目的看代码上的介绍。

    康代码上的介绍可太坑人了 所以有低代码的要直接在低代码里面搜索 不要盲目相信代码上的介绍是xx接口 有些程序y就是懒 复制过来 随便写个介绍或者不写介绍
  • vue 点击当前item项,实现单选或多选高亮业务

    单选业务 template
  • bootstrap-select组件,亲测还不错

    前言 之前分享过两篇bootstrap下拉框的组件 JS组件系列 两种bootstrap multiselect组件大比拼 和 JS组件系列 Bootstrap Select2组件使用小结 收到很多园友的关注和提问 最后总结这两篇里面的下拉