前端插件之Bootstrap Dual Listbox使用教程


Posted in Javascript onJuly 23, 2019

对于很多非专业前端开发来说写页面是非常痛苦的,借助框架或插件往往能够达到事半功倍的效果,本系列文章会介绍我在运维系统开发过程中用到的那些顺手的前端插件,如果你是想写XX管理系统的学生、或是需要独自做Dashboard的后端工程师、亦或是像我这样半吊子的开发加运维,那么这个系列的文章你一定不要错过

Bootstrap Dual Listbox是一款基于Bootstrap的双向select选择框控件,作为对multiple select的扩展,使用起来非常简单,功能也更强大

项目Github地址:https://github.com/istvan-ujjmeszaros/bootstrap-duallistbox

基本使用

需要用到的JS和CSS文件位于项目代码下的dist目录中,需要将这个目录中的对应文件放入你的项目里,这一步不赘述

1.引入CSS/JS文件,由于bootstrap-duallistbox是基于bootstrap的,所以要先引入bootstrap相关的css和js

<!-- 加载bootstrap -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">     
<!-- 加载bootstrap-dualllistbox -->
<link rel="stylesheet" href="static/bootstrap-duallistbox/bootstrap-duallistbox.css" rel="external nofollow" >
<script src="static/bootstrap-duallistbox/jquery.bootstrap-duallistbox.js"></script>

1.加载duallistbox插件

<select class="form-control" multiple="multiple" name="groups" size="10">
  <option value="1">GroupA</option>
  <option selected value="2">GroupB</option>
  <option value="3">GroupC</option>
  <option value="4">GroupD</option>
  <option selected value="5">GroupE</option>
  <option value="6">GroupF</option>
  <option value="7">GroupG</option>
</select>
<script>
  var selectorx = $('select[name="groups"]').bootstrapDualListbox();
</script>

1.完成以上两步可以看到页面效果如下

非常简单,到这里已经可以正常使用这个控件了,更多的花样接着往下看

配置说明

整个界面为英文显示,有默认提示,如果你想将提示改为中文或添加自定义的提示内容,那么可以通过如下配置

var selectorx = $('select[name="groups"]').bootstrapDualListbox({
  nonSelectedListLabel: '未选择的组',
  selectedListLabel: '已选择的组',
  filterTextClear: '展示所有',
  filterPlaceHolder: '过滤搜索',
  moveSelectedLabel: "添加",
  moveAllLabel: '添加所有',
  removeSelectedLabel: "移除",
  removeAllLabel: '移除所有',
  infoText: '共{0}个组',
  infoTextFiltered: '搜索到{0}个组 ,共{1}个组',
  infoTextEmpty: '列表为空',
});

以上配置都比较简单,对照中文就能知晓意思,不做过多解释,另外有几个支持的参数说明如下:

infoText: 除了设置字符串外还可设置为false,当设置为false时可隐藏这段信息

showFilterInputs: 默认为true,是否显示filter过滤框

moveOnSelect: 默认为true,点击便会变更选项到对应的选择框内,如果设置为false则会在出现moveSelected的箭头需要点击箭头或者双击选项后才能变更选项到对应的选择框

nonSelectedFilter: 未选中的默认过滤规则,可以配置为OPS-COFFEE-A则未选中的框内只会显示OPS-COFFEE-A

selectedFilter: 已选中的默认规则,与noSelectedFilter类似

使用进阶

获取已选择的值

selectorx.val()

获取select插件对象

selectorx.bootstrapDualListbox('getContainer')

刷新插件元素用户界面

selectorx.bootstrapDualListbox('refresh');

删除bootstrap-duallistbox插件,恢复select原样

selectorx.bootstrapDualListbox('destroy');

动态添加select的option

selectorx.append('<option value="9" selected>ops-coffee.cn</option>');
selectorx.bootstrapDualListbox('refresh');

注意:上文中的所有selectorx都为加载duallistbox时实例化的select对象

完整Demo

为了方便大家学习,我写了个完整的demo,你可以在线查看效果或下载代码应用到自己的项目中

在线Demo地址:https://demo.ops-coffee.cn/duallistbox/

Github源码地址:https://github.com/ops-coffee/demo/tree/master/duallistbox

总结

以上所述是小编给大家介绍的前端插件之Bootstrap Dual Listbox使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
javascript面向对象之this关键词用法分析
Jan 13 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
Sep 22 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
玩转JavaScript OOP - 类的实现详解
Jun 08 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
Webpack中loader打包各种文件的方法实例
Sep 03 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
Jul 23 #Javascript
vscode vue 文件模板的配置方法
Jul 23 #Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 #Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 #jQuery
这应该是最详细的响应式系统讲解了
Jul 22 #Javascript
20道JS原理题助你面试一臂之力(必看)
Jul 22 #Javascript
微信小程序webview 脚手架使用详解
Jul 22 #Javascript
You might like
php将时间差转换为字符串提示
2011/09/07 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP如何实现跨域
2016/05/30 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
js使用递归解析xml
2014/12/12 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
详解JS模块导入导出
2017/12/20 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
python实现中文输出的两种方法
2015/05/09 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python遍历小写英文字母的方法
2019/01/02 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
母婴店促销方案
2014/03/05 职场文书
大学生社会实践评语
2014/04/25 职场文书
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python