基于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的document.ready更快的方法
Apr 28 Javascript
jQuery 阴影插件代码分享
Jan 09 Javascript
JavaScript代码复用模式详解
Nov 07 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Jun 23 Javascript
View.post() 不靠谱的地方你知道多少
Aug 29 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
Sep 25 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
从零开始实现Vue简单的Toast插件
Dec 03 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
vue的webcamjs集成方式
Nov 16 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(视频)Http下载
2006/12/12 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python文件及目录操作实例详解
2015/06/04 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
python的pip有什么用
2020/06/17 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
新闻学毕业生自荐信
2013/11/15 职场文书
关于逃课的检讨书
2014/01/23 职场文书
搞笑征婚广告词
2014/03/17 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
嘉宾邀请函
2015/01/31 职场文书
战马观后感
2015/06/08 职场文书