基于BootStrap multiselect.js实现的下拉框联动效果


Posted in Javascript onJuly 28, 2017

背景:当option特别多时,一般的下拉框选择起来就有点力不从心了,所以使用multiselect是个很好的选择,可以通过输入文字来选择选项很方便,但是有一个需要下拉框联动,网上找了半天才找到解决方法,在此分享一下

1、先引入

<script src="~/Assets/js/bootstrap-multiselect.min.js"></script>
  <link href="~/Assets/css/bootstrap-multiselect.css" rel="external nofollow" rel="stylesheet" />

然后全局定义

function RegSelect() {
      $('.multiselect').multiselect({
        buttonClass: 'btn btn-white ',
        enableFiltering: true,
        enableHTML: true,
        includeSelectAllOption: true,
        selectAllText: '全选',
        allSelectedText: '全部选中',
        nonSelectedText: '请选择',
        nSelectedText: '个被选中',
        templates: {
          button: '<button type="button" class="multiselect dropdown-toggle" data-toggle="dropdown"><span class="multiselect-selected-text"></span>  <b class="fa fa-caret-down"></b></button>',
          ul: '<ul class="multiselect-container dropdown-menu"></ul>',
          filter: '<li class="multiselect-item filter"><div class="input-group"><span class="input-group-addon"><i class="fa fa-search"></i></span><input class="form-control multiselect-search" type="text"></div></li>',
          filterClearBtn: '<span class="input-group-btn"><button class="btn btn-default btn-white btn-grey multiselect-clear-filter" type="button"><i class="fa fa-times-circle red2"></i></button></span>',
          li: '<li><a tabindex="0"><label></label></a></li>',
          divider: '<li class="multiselect-item divider"></li>',
          liGroup: '<li class="multiselect-item multiselect-group"><label></label></li>'
        }
      });
    }

只需要在页面加载时RegSelect();(只能调用一次,不然会出现问题)就可以了

2、两个下拉框

<div class="form-group">
          <label for="RepairOrg" class="col-sm-3 control-label">维修单位</label>
          <div class="col-sm-9">
            @Html.DropDownList("RepairOrgUID", ViewBag.OrgList as List<SelectListItem>, "请选择", new { @class = "form-control multiselect", onchange = "OrgChange(this)", id = "RepairOrg" })
          </div>
        </div>
        <div class="form-group">
          <label for="RepairContact" class="col-sm-3 control-label">维修人</label>
          <div class="col-sm-9">
            @Html.DropDownList("RepairContactUID", ViewBag.ContactList as List<SelectListItem>, "请选择", new { @class = "form-control multiselect", id = "RepairContact" })
          </div>
        </div>

3、js代码

function OrgChange(obj, patientID) {
      var RepairOrg = $(obj).val();
      $.post("/TerminalManage/GetContactByOrg", { RepairOrg: RepairOrg }, function (data) {     
        var newCitys = new Array();
        var obj = new Object();
        obj = {
          label: "请选择",
          value: ""
        };
        newCitys.push(obj);
        for (var i = 0; i < data.length; i++) {
          obj = {
            label: data[i].Text,
            value: data[i].Value
          };
          newCitys.push(obj);
        }
        $("#RepairContact").multiselect('dataprovider', newCitys);
        $('#RepairContact').multiselect('refresh');
      });
    }

总结

以上所述是小编给大家介绍的基于BootStrap multiselect.js实现的下拉框联动,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
js正则表达式匹配数字字母下划线等
Apr 14 Javascript
Javascript数组中push方法用法分析
Oct 31 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
Apr 03 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 04 Javascript
JavaScript实现弹出窗口效果
Dec 09 Javascript
从源码角度来回答keep-alive组件的缓存原理
Jan 18 Javascript
基于JS实现移动端左滑删除功能
Jul 28 #Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 #Javascript
webpack实现热更新(实施同步刷新)
Jul 28 #Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 #Javascript
解决React Native端口号修改的方法
Jul 28 #Javascript
vue+vux实现移动端文件上传样式
Jul 28 #Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 #Javascript
You might like
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
2015元旦节寄语
2014/12/08 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang