基于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 阴影插件代码分享
Jan 09 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
jquery实现用户信息修改验证输入方法汇总
Jul 18 Javascript
利用Angularjs实现幻灯片效果
Sep 07 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
Sep 09 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
微信小程序实现评论功能
Nov 28 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
vue实现lodop打印功能的示例
Nov 11 Javascript
JavaScript 如何在浏览器中使用摄像头
Dec 02 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和oracle数据库性能比较
2006/10/09 PHP
php Smarty 字符比较代码
2011/02/27 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
非常好的js代码
2006/06/27 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python实现跨文件全局变量的方法
2014/07/07 Python
python logging类库使用例子
2014/11/22 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python读取stdin方法实例
2019/05/24 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
英文自我鉴定
2013/12/10 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
消防安全主题班会
2015/08/12 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
使用Python获取字典键对应值的方法
2022/04/26 Python