1.bootstrap-multiselect 顾名思义基于bootstrap,bootstrap基于jquery,所以第一步,引入文件

bootstrap.css/ juery.js /bootstrap.js  引入此三个文件,是常用的就不贴出来了;

引入下面的两个文件,如果没有请去github下载:https://github.com/davidstutz/bootstrap-multiselect

 <link rel="stylesheet" type="text/css" href="bootstrap-multiselect.css">
<script type="text/javascript" src="bootstrap-multiselect.js"></script>

2.开始使用

 <div style="width: 100%; margin:20px">
<select multiple="multiple" style="width:100%; ">
<option>一室一厅</option>
<option>两室一厅</option>
<option>三室一厅</option>
</select>
</div>

这是一段都知道的代码,我尽量说的简便易懂;

$('select').multiselect();

不展开和展开的效果就在上面;这就是简单的使用;

接下来我们来添加两个配置:

 $("select").multiselect({
buttonWidth:195, //选择框的大小
includeSelectAllOption: true,//是否现实全选
});

看看效果:

可以看到源码里面介绍,有许多的配置项,网上已经相应的关于每一个配置项的介绍,例如这一篇http://blog.csdn.net/fangzilixia/article/details/51265112  可以看看;

2.改变多选框的样式;让它变得好看点;

 .multiselect-container{ /*下拉框的样式*/
width:195px;
}
.multiselect-container>li>a>label{
line-height: 28px;
font-size: 12px;
}
.multiselect-container>li>a>label>input[type='checkbox'] {
margin-top: 7px;
}
.multiselect-item.multiselect-all.active{
border-bottom:1px solid #ccc !important;
}
/* .multiselect-container.dropdown-menu li{
width:49%;
display: inline-block;
}
.multiselect-container.dropdown-menu li:first-child{
width:100%;
} */
.multiselect.dropdown-toggle.btn.btn-default:link,.multiselect.dropdown-toggle.btn.btn-default:visited,.multiselect.dropdown-toggle.btn.btn-default:focus,.multiselect.dropdown-toggle.btn.btn-default:hover,.multiselect.dropdown-toggle.btn.btn-default:active, .btn-default.active, .btn-default:active, .open>.dropdown-toggle.btn-default{
background: #fff;
outline: none;
border:1px solid #ccc;
box-shadow: none;
}
.dropdown-menu>.active>a, .dropdown-menu>.active>a:focus, .dropdown-menu>.active>a:hover{
background: #474752;
}
.multiselect-selected-text{
font-size:13px;
font-family: '微软雅黑','宋体';
width:100%;
float: left;
text-align: left;
}
.btn.btn-default{
padding-right:15px;
}

看看效果:

样式就改到这;

3.动态添加option

将html的option去掉:

<div style="width: 100%; margin:20px">
<select multiple="multiple" name="companyIdStr" class="companyIdStr" style="width:100%; ">
</select>
</div>

法1:

  function multiselect(obj) {  //初始化方法
$(obj).multiselect({
includeSelectAllOption: true,
enableClickableOptGroups: true,
enableCollapsibleOptGroups: true,
buttonWidth: 195,
maxHeight: 300,
});
}
//动态创建option
function newOption(data, className) {
var option;
for (var i = 0; i < data.length; i++) {
if (data[i].selected) { //判断是否要初始化时就选择
option += '<option value="' + data[i].value + '" selected="' + data[i].selected + '">' + data[i].label + '</option>';
} else {
option += '<option value="' + data[i].value + '">' + data[i].label + '</option>';
}
}
$(className).html(option);//将内容显示在复选框, $(className).append(option) 也是可以的;
multiselect(className);
}
var data = [{ value: '1', label: '一室一厅', selected: true }, { value: '2', label: '两室一套' }, { value: '3', label: '两室三套' }];
newOption(data, '.companyIdStr');

效果这样,默认第一个可选;

法二:

 $("select[name='companyIdStr']").multiselect({
enableClickableOptGroups: true,
enableCollapsibleOptGroups: true,
enableCollapsibleOptGroups: true,
buttonWidth:195, //选择框的大小
includeSelectAllOption: true,
selectAllJustVisible:true,
//下拉回调函数
onDropdownShow: function (event) {
addOption();
},
});
function addOption(){
var data=[{value:'1',label:'一室一厅',selected:true},{value:'2',label:'两室一套'}];
$("select[name='companyIdStr']").multiselect('dataprovider',data);
}

利用本身回调事件;

就是这样,两种办法;

bootstrap-multiselect 的简单使用,样式修改,动态创建option的更多相关文章

  1. 微信小程序开发小技巧——单击事件传参、动态修改样式、轮播样式修改等

    一. 脚本部分: 1. 表达式无效的处理: 如果你发现自己编写的表达式无效或者数据不展示,那么请先检查你的表达式是否有添加{{}},小程序中全部都要添加的,只要是在模板中调用js中的数据 2. 获取元 ...

  2. Python - Django - 使用 Bootstrap 样式修改书籍列表

    展示书籍列表: 首先修改原先的 book_list.html 的代码: <!DOCTYPE html> <!-- saved from url=(0042)https://v3.bo ...

  3. 如何在vue中修改动态标签中的样式和修改组件库样式

    vue中修改动态标签中的样式和修改组件库样式 因为vue中的标签在渲染的时候,都会给标签加上id 所以你想在<style lang="scss" scoped>直接修改 ...

  4. Python - Django - 使用 Bootstrap 样式修改注册页

    reg2 函数: from django.shortcuts import render, HttpResponse from app01 import models def reg2(request ...

  5. web 前端常用组件【03】Bootstrap Multiselect

    实际的项目网站中或多或少的或用到多选框,我选用的一款是 Bootstrap Multiselect. 官方文档:http://www.kuitao8.com/demo/20140224/1/boots ...

  6. 对bootstrap modal的简单扩展封装

    对bootstrap modal的简单扩展封装 参考自:http://www.muzilei.com/archives/677   注:原文不支持bootstrap新版本,并且居中等存在问题 此段时间 ...

  7. HTML5中 audio标签的样式修改

    由于html5的流行,现在移动端大多数的需求都可以使用audio来播放音频,但您可能只是需要很简单的播放/停止效果,但不同的浏览器上的audio样式却不尽人意,那么要怎么改变这个样式呢,其实它的原理比 ...

  8. 更改ligerui源码实现分页样式修改

    修改后样式: 第一步:实现功能. 更改源码部分ligerui.all.js文件 读源代码,发现ligerui底部工具条是这样实现的(ps:注释部分为源码) _render: function () { ...

  9. webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部署

    本文为大家讲解的是webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部属,感兴趣的同学参考下 ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端a ...

随机推荐

  1. Vuex 源码学习(二)

    Vue加载后,将Vuex 加载到 Vue对象上后,初始化Store. (一) Store的参数的定义 其中 action 与 mutation 的订阅者 用 数组存储,而其属性都是用对象存储的. 考虑 ...

  2. java多线程(六)-线程的状态和常用的方法

    一个线程可以处于以下几种状态之一: (1) 新建(new):当线程被创建时,它只会短暂的处于这种状态,此时它已经获得了必须的系统资源,并执行了初始化,该线程已经有资格获取cpu时间了,之后它将转化为可 ...

  3. MySQL安装的三种方式

    .markdown-preview:not([data-use-github-style]) { padding: 2em; font-size: 1.2em; color: rgb(171, 178 ...

  4. 自己封装的一个js方法用于获取显示的星期和日期时间

    自己封装的一个js方法用于获取显示的星期和日期时间 /** * 获取用于显示的星期和日期时间 * @param date * @returns {string} */ function getWeek ...

  5. TurnipBit-MicroPython开发板:跟孩子一起DIY跳动的心

    天是越来越热了,小心脏也是越跳越快啊,为了表达现在激动的心情,必须做个激动的心开始跳动.紧接着就开始带领大家做个激动的心. 首先说说要借助的平台,这次仅仅需要借助一块TurnipBit开发板. Tur ...

  6. Python核心编程笔记--动态属性

    一.动态语言与静态语言 1.1 静态语言特点: a. 在定义变量时需要指定变量的类型,根据指定的类型来确定变量所占的内存空间 b. 需要经过编译才能运行 c. 在代码编译后,运行过程不能对代码进行操作 ...

  7. [原创]Nginx反向代理及负载均衡

    1.基本命令 # 启动nginx start nginx.exe # windowsnginx -c /usr/local/nginx/conf/nginx.conf # Linux# 优雅的停止ng ...

  8. Spring Boot实战:集成Swagger2

    一.Swagger简介 上一篇文章中我们介绍了Spring Boot对Restful的支持,这篇文章我们继续讨论这个话题,不过,我们这里不再讨论Restful API如何实现,而是讨论Restful ...

  9. 一个大四毕业生想对自学Android的大学生说一些话

    本人大四,经历了秋招和春招,秋招拿了华为的android offer,春招是拿的java后台开发的offer,一路走来,感慨很多,有一些话想对在自学Android的大学生说.本文只是帮助像我一样的大学 ...

  10. 利用java的反射,实现工厂创建对象

    public static Object getInstance(Class c){ Object obj = null; try { obj = c.newInstance(); } catch ( ...