下拉多选框bootstrap-multiselect教程

bootstrap-multiselect:[url]https://github.com/davidstutz/bootstrap-multiselect[/url]
bootstrap-multiselect doc:[url]http://davidstutz.github.io/bootstrap-multiselect/[/url]
项目中要用到下拉多选框,搜了一下,感觉bootstrap-multiselect,不错,今天来简单介绍一下:
测试页面:
<html lang="en">
<head>
<meta charset="utf-8" />
<!--注意这里jquery的版本和css,js引入的顺序 -->
<link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css" type="text/css"/>
<script type="text/javascript" src="./jquery/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="./bootstrap/js/bootstrap.min.js"></script>

<!-- Include the plugin's CSS and JS: -->
<!-- <script type="text/javascript" src="./dist/js/bootstrap-multiselect.js"></script> -->
<!--无选择提示为中文,只是部分中文 -->
<script type="text/javascript" src="./dist/js/bootstrap-multiselect_cn.js"></script>
<link rel="stylesheet" href="./dist/css/bootstrap-multiselect.css" type="text/css"/>
<script type="text/javascript">
console.log("start");
$(document).ready(function() {
$('#example-multiple').multiselect();
$('#example-radio').multiselect();
$('#example-multiple-optgroups').multiselect();
$('#example-radio-optgroups').multiselect();
/*
*分组可选,可折叠,全选时不显示,所有option的数量
*/
$('#example-enableClickableOptGroups').multiselect({
enableClickableOptGroups: true,
selectAllNumber: false
});
/*
*分组可选,可折叠,可全选,右侧显示下拉选项,
*触发选择事件,可搜索,可展示已选择option的数量(numberDisplayed)
*/
$('#example-all').multiselect({
enableClickableOptGroups: true,
enableCollapsibleOptGroups: true,
includeSelectAllOption: true,
buttonWidth: '400px',
dropRight: true,
maxHeight: 200,
onChange: function(option, checked) {
alert($(option).val());
/*if(条件) {
this.clearSelection();//清除所有选择及显示
}*/
},
nonSelectedText: '请选择',
numberDisplayed: 10,
enableFiltering: true,
allSelectedText:'全部',
});

});
</script>
</head>
<body style="margin-left:10;">
1.多选下拉框:

<select id="example-multiple" multiple="multiple">
<option value="cheese">Cheese</option>
<option value="tomatoes">Tomatoes</option>
<option value="mozarella">Mozzarella</option>
<option value="mushrooms">Mushrooms</option>
<option value="pepperoni">Pepperoni</option>
<option value="onions">Onions</option>
</select>
<BR/>
2.单选下拉框:

<select id="example-radio">
<option value="cheese">Cheese</option>
<option value="tomatoes">Tomatoes</option>
<option value="mozarella">Mozzarella</option>
<option value="mushrooms">Mushrooms</option>
<option value="pepperoni">Pepperoni</option>
<option value="onions">Onions</option>
</select>
<BR/>
从上面两个来看,能不能多选,主要是multiple="multiple"属性配置...

3.多选分组下拉框:

<select id="example-multiple-optgroups" multiple="multiple">
<optgroup label="Group 1" class="group-1">
<option value="1-1">Option 1.1</option>
<option value="1-2" selected="selected">Option 1.2</option>
<option value="1-3" selected="selected">Option 1.3</option>
</optgroup>
<optgroup label="Group 2" class="group-2">
<option value="2-1">Option 2.1</option>
<option value="2-2">Option 2.2</option>
<option value="2-3">Option 2.3</option>
</optgroup>
</select>
<BR/>
4.单选分组下拉框:

<select id="example-radio-optgroups">
<optgroup label="Group 1" class="group-1">
<option value="1-1">Option 1.1</option>
<option value="1-2" selected="selected">Option 1.2</option>
<option value="1-3" selected="selected">Option 1.3</option>
</optgroup>
<optgroup label="Group 2" class="group-2">
<option value="2-1">Option 2.1</option>
<option value="2-2">Option 2.2</option>
<option value="2-3">Option 2.3</option>
</optgroup>
</select>
<BR/>
5.分组多选下拉框:

<select id="example-enableClickableOptGroups" multiple="multiple">
<optgroup label="Group 1" class="group-1">
<option value="1-1">Option 1.1</option>
<option value="1-2">Option 1.2</option>
<option value="1-3">Option 1.3</option>
</optgroup>
<optgroup label="Group 2" class="group-2">
<option value="2-1" disabled="disabled">Option 2.1</option>
<option value="2-2">Option 2.2</option>
<option value="2-3">Option 2.3</option>
</optgroup>
</select>
6.分组多选,可折叠,可全选下拉框:

<select id="example-all" multiple="multiple">
<optgroup label="Group 1" class="group-1">
<option value="1-1">Option 1.1</option>
<option value="1-2" selected="selected">Option 1.2</option>
<option value="1-3" selected="selected">Option 1.3</option>
</optgroup>
<optgroup label="Group 2" class="group-2">
<option value="2-1">Option 2.1</option>
<option value="2-2">Option 2.2</option>
<option value="2-3">Option 2.3</option>
</optgroup>
</select>
</body>
</html>

效果如下:

[img]http://dl2.iteye.com/upload/attachment/0124/7857/ba9e83e0-a8f7-328b-947f-beee5aacc8eb.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0124/7859/6f29cacd-4ab4-308a-93c8-6ac88150917a.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0124/7861/7bbe84a8-f82f-3386-bc5a-f1ae73ec4571.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0124/7863/12e67095-6a8c-3ca3-b404-a5fab051cf38.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0124/7865/0552de3c-bb5c-3d90-8093-c0115a43a3bf.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0124/7867/f696cf33-fe22-3e3a-a72f-aa54960d3057.png[/img]


使用过程中发现与<link rel="stylesheet" href="static/css/ace.min.css" />的ace.min.css样式单冲突,multiselect下拉框checkbox不显示,

[img]http://dl2.iteye.com/upload/attachment/0124/8082/dee7f39e-ec71-3f87-b733-a47bec4efe73.png[/img]

查看下拉框与页面中的checkbox有什么不同,
发现页面中checkbox多了一个<span class="lbl"/>,而multiSelect 下拉框中的checkbox中没有,看看能不能,修改JS,bootstrap-multiselect_cn.js;在脚本中createOptionValue方法中,修改
<script type="text/javascript" src="./dist/js/bootstrap-multiselect_cn.js"></script>
/**
* Create an option using the given select option.
*
* @param {jQuery} element
*/
createOptionValue: function(element) {
var $element = $(element);
if ($element.is(':selected')) {
$element.prop('selected', true);
}

// Support the label attribute on options.
var label = this.options.optionLabel(element);
var classes = this.options.optionClass(element);
var value = $element.val();
var inputType = this.options.multiple ? "checkbox" : "radio";

var $li = $(this.options.templates.li);
var $label = $('label', $li);
$label.addClass(inputType);
$li.addClass(classes);

if (this.options.enableHTML) {
$label.html(" " + label);
}
else {
$label.text(" " + label);
}
//var $checkbox = $('<input/>').attr('type', inputType);

var $checkbox = $('<input/>').attr('type', inputType);
//测试修改如下
//$checkbox.append('<span class="lbl"/>');
//$checkbox.after('<span class="lbl"/>');
//$('<input>').append('<span class="lbl"/>');
//var $checkbox = $('<input/>').attr('type', 'radio'));
//solve the ace-admin-min.css,input type is checkbox css collision
//var $checkbox = $('<input/>').attr('class', "lbl");
//.append('<span class="lbl"> 信用证</span>'
var name = this.options.checkboxName($element);
if (name) {
$checkbox.attr('name', name);
}

$label.prepend($checkbox);
...
}

测试发现:
$checkbox.append('<span class="lbl"/>');//这个不是我们想要的

我们想要的是after产生的效果,
$checkbox.after('<span class="lbl"/>');//无效,jquery,找不到,

但通id可以,调用after可以产生效果,而$('<input/>').after和通过class找不到。
至于问什么,没能解决,知道可以给我留言,谢谢。
参考:
JQuery中html、append、appendTo、after、insertAfter、before、insertBefore、empty、remove的使用:[url]http://www.cnblogs.com/wx1993/p/4806873.html[/url]

放弃修改Js,修改css,bootstrap-multiselect

修改
<link rel="stylesheet" href="./dist/css/bootstrap-multiselect.css" type="text/css"/>

.multiselect-container>li>a>label>input[type=checkbox] {
margin-bottom: 5px
}

为
.multiselect-container>li>a>label>input[type=checkbox] {
margin-bottom: 5px;
margin-left: 20px;
opacity:1;/*checkbox透明度*/
position:relative
}

添加如下样式:
.multiselect.dropdown-toggle.btn.btn-default {
background-color: #dbd8d8 !important;
color: black !important;
border: #c92727 !important;
box-shadow: none !important;
text-shadow: 0 -1px 0 #d8c8c8 !important;
}
.btn.btn-default.multiselect-clear-filter {
background-color: #fff9f9 !important;
border: #c34e4e !important;
}

使用!important主要是,主要让样式的优先级变高,可以来指定,不让ace.min.css覆盖:。
参考:
css样式加载顺序及覆盖顺序深入理解:[url]http://www.jb51.net/css/124992.html[/url]
html、css、js文件加载顺序及执行情况:[url]http://www.cnblogs.com/Walker-lyl/p/5262075.html[/url]
[size=medium][b]CSS样式加载顺序:[/b][/size]
1.<head>标签内有一个<link>标签引用外部CSS文件
2.内部css样式
3.标签style样式
即按在html中css出现的顺序;但这些样式是有优先级的如下,
[size=medium][b]CSS样式覆盖顺序深入理解:[/b][/size]
1. 样式表的元素选择器选择越精确,则其中的样式优先级越高:
id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式
2. 对于相同类型选择器制定的样式,在样式表文件中,越靠后的优先级越高
注意,这里是样式表文件中越靠后的优先级越高,而不是在元素class出现的顺序。
3. 如果要让某个样式的优先级变高,可以使用!important来指定


测试页面:
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="./bootstrap-multiselect-master/jquery/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
console.log("start");
$(document).ready(function() {
//$('<input/>').append('<span class="lbl"/>');
//var $input = $('<input/>').attr('type', 'checkbox');
// $('<input>')创建一个input标签
var $input = $('<input>').attr('type', 'checkbox');
$input.val("c");
$input.addClass("multiselect-ace")
$(".multiselect-ace").after('<span class="lbl"/>');
//$input.append('<span class="lbl"/>');
//$input.after('<span class="lbl"/>');//无效,jquery,找不到,
$('<span class="lbl"/>').insertAfter($input);
//$('<span class="lbl"/>').appendTo($input);
//$input.appendTo('<span class="lbl"/>');
//var $input = $('<input/>').append('<span class="lbl"/>');
$("#test").append($input);
//$("#test").after('<span class="lbl"/>');
//alert( $('<input/>').val());

});
</script>
</head>
<body>
<select>
<option>test</option>
</select>
<BR/>
<input id="test" type="radio" name="test" value="v"/>
<BR/>
<!-- <input type="checkbox"/> -->
</body>
</html>

Cloudflare SaaS 优选IP实战:提升大陆访问速度的配置指南 本文详细介绍了如何通过Cloudflare SaaS优选IP提升中国大陆用户访问速度的配置指南。从基础环境准备到IP筛选方法,再到完整配置流程和效果验证,帮助用户突破免费套餐限制,精准优化网络线路,特别适合跨境电商和面向中国大陆用户的网站优化。 阅读详情

相关推荐

STM32驱动WS2812B实现音乐频谱可视化系统

本文详细介绍了基于STM32驱动WS2812B灯带实现音乐频谱可视化系统的设计与实现。通过FFT算法实时分析音频信号,将频谱映射到炫彩灯光控制系统,结合PWM和DMA技术实现低延迟响应。系统支持多模式切换和动态亮度调节,适用于创意灯光秀和智能家居场景。

weixin_29171129的博客 302

bootstrap 插件multiselect 左右选择框

首先看一下效果图: 第一步 :引入对应的js bootstrap.js、jquery.js、multiselect.min.js 这三个是必须要有的 jsp代码: <div class="row"> <div class="col-xs-5"> ...

Java 璐到底 1949

通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标

通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标 1 超级指标 指标公式:买卖提示非常明显(适合通达信) 指标源码如下: M:3 100 60 N 3 100 30 散户线: 100*(HHV(HIGH,M)-CLOSE)/(HHV(HIGH,M)-LLV(LOW,M));RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,5,1); D:=SMA(K,3,1); J:=3*K-2*D;主力

m0_60244077的博客 3万+

Bootstrap可多选、搜索的下拉列表

示例图:可搜索 区分大小写搜索需要引用bootstrap文件,核心文件:bootstrap-multiselect.css、bootstrap-multiselect.jsbootstrap-multiselect.css.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multise

人生若南柯一梦 1万+

工程制图习题集张大庆课后习题答案解析

所以,我想向大家求助,希望能得到一些学习资料、学习方法和学习经验,帮助我更好地理解和掌握这门课程。在寻找学习资料的过程中,我发现了一款叫做资小料的APP,它里面有很多关于工程制图的学习资料,包括视频教程、习题解答和考试真题等。通过使用资小料,我逐渐掌握了工程制图的基本理论和方法,解决了很多学习中遇到的问题。在这里,我想推荐给和我一样在学习《工程制图习题集》这门课的同学们,希望大家也能从这款APP中受益,共同进步。上传者: 『Consentesdei』蒼迷穀。出版社: 清华大学出版社。

weixin_58833001的博客 925

神经元细胞结构刨析(持续更新)

神经细胞的学习笔记

weixin_46596227的博客 2221

Bootstrap 禁用的按钮

禁用的按钮对于链接,只要添加 .disabled 类,就可以实现颜色变浅、褪掉渐变的效果,并让按钮看起来无法点击。当鼠标移动按钮上时,按钮的样式不再发生变化。如:&lt;a href="#" class="btn btn-large btn-primary disabled"&gt;Primary link&lt;/a&gt;&lt;a href="#" class="btn btn-large .

歪脖先生的博客 1万+

基于Multisim的模电调幅发射机仿真设计

振荡器产生的高频信号的功率很小,所以有必要对高频信号进行功率放大,有利于信号的调制发射。缓冲电路将主振荡器和高频功放电路相隔离,以减小功放电路对主振荡器的影响。缓冲电路可以用射极跟随器电路来实现,其作用就是前后级的阻抗相互匹配,减小前后级的影响。总电路的仿真结果见下图:示波器1~4分别是主振荡器、缓冲电路、高频放大电路和调幅电路的输出波形。由于载波频率稳定度≤10-3,所以可以采用并联型改进电容反馈式三端振荡器(Seiler电路)谐振回路,滤除其他频率的成分,得到与载波(假设。(1)缓冲电路的设计与实现。

Eve223322的博客 4584

关于bootstrap-multiselect下拉多选框的使用

1.文档参照地址:http://davidstutz.de/bootstrap-multiselect/ 2.下载地址:网上有很多分享的,就不贴上来了 一、引入项目 <!-- 需要bootstrap和jquery: --> <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"/> <sc...

weixin_45016069的博客 857

NXP S32K3xx 多次复位(reset)后MCU跑死、崩溃、出错分析

s32k3出现多次复位后死机的情况

HeFlyYoung的博客 9515

解锁轻量化网络实验室:在 Containerlab 中部署 Cisco IOL 设备的详细教程

Cisco IOS On Linux(IOL)是 Cisco IOS-XE 的简化版,它是 Cisco IOS 的一种轻量级实现。IOL 并不需要完整的虚拟机(Virtual Machine, VM)环境,可以直接在 Linux 上运行,极大地减少了对系统资源的需求。IOL 节点通过更精简的方式提供了 Cisco IOS 功能,适合构建实验室、测试网络协议和验证网络设计。

网络技术联盟站 476

bootstrap下拉多选框实现

bootstrap下拉多选框实现

q370786406的博客 4085

剪映专业版教程:用AI生成音乐MV并重新制作画面—《漂泊与归梦》完全原创实战

本文详细拆解如何用AI生成音乐MV并重新制作画面的全流程。以歌曲《漂泊与归梦》为例,首先用AI将歌词转化为带音乐的MP4文件;导入剪映后分离音频并删除原视频,通过“识别字幕”功能提取歌词文本并逐句核对修正;接着设置“向右擦除”动画并锁定字幕轨道;最后根据歌词意境配置动漫、风景等非真人画面规避审核风险。教程涵盖从AI生成、音频分离、字幕提取到画面重制的每个环节,助你打造完全原创、无侵权风险的音乐短视频。

深耕计算机专业知识与技术。 1074

multiselect多选下拉框的使用,回显,清空

实现基于bootstrap-multiselect多选框的选择、回显、清空 1、先引用对应的js与css <script type="text/javascript" src="/jquery-1.12.4.min.js"></script> <script type="text/javascript" src="/bootstrap/js/bootstrap.js"...

qq_39808000的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

插件介绍:Bootstrap 下拉多选框插件Bootstrap Multiselect

引入文件:<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"/> <link rel="stylesheet" href="css/bootstrap-multiselect.css" type="text/css"/> <script type="text/javascript" src="js/bootstrap

内沐的博客 7763

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

选择框分组 bootstrap-multiselect

分组并进行选项的禁用和启用1,使用的插件2,多选框3,分组选择 1,使用的插件 bootstrap-multiselect.css bootstrap-multiselect.js 下载链接 2,多选框 代码如下: <!-- 引入js和css文件 --> <link rel="stylesheet" href="${ctx}/static/bootstrap/dist/css/bootstrap-multiselect.css"> <script src="${ctx}/s

qq_41115103的博客 1042

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Bootstrap 实现下拉多选框插件

下拉多选框 使用:1. 引入文件:&lt;link href="assets/css/bootstrap-select.css" rel="stylesheet" type="text/css" /&gt;&lt;link href="assets/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css&q

weixin_42517975的博客 595

基于bootstrap的jQuery左右移动多选框插件 multiselect

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%> 用户项目管理 <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootst

沈荣荣的博客 1万+

bootstrap multiselect+thymeleaf下拉多选以及回显

使用bootstrap multiselect+thymeleaf实现下拉多选 <div class="form-group"> <label class="col-sm-3 control-label">添加控制点:</label> <div class="col-sm-3"> <selec...

那些年的代码 814

bootstrap-multiselect.js多选框 动态更新select里的数据

最近用bootstrap-multiselect做多选,需要动态刷新数据。尝试了集中网上的方式都不行,最后采用下面方式进行解决,参考的原文地址:http://www.lanlanwork.com/blog/?post=6424 bootstrap-multiselect动态加载数据,首先要引用bootstrap-multiselect.css和bootstrap-multiselect.js JS代码 $("#demo").multiselect({ // 自定义参数,按自己需求定义 nonSelecte

man_8211的专栏 997

AngularJS Dropdown Multiselect 项目常见问题解决方案

AngularJS Dropdown Multiselect 项目常见问题解决方案 项目基础介绍 AngularJS Dropdown Multiselect 是一个基于 AngularJS 和 Bootstrap 的下拉多选框指令。该指令允许用户创建具有复选功能的选择框,并支持分组、搜索、限制选择数量等特性。项目使用的主要编程语言是 JavaScript 和 HTML。 新手常见问题及解决步骤 ...

gitblog_00376的博客 1045

使用bootstrap-multiselect多选框,绑定数据后界面不显示出来的问题

使用bootstrap-multiselect多选框,绑定数据后界面不显示出来的问题 ```javascript $(document).ready(function () { // $('#example-select-onChange').multiselect('select', '100', true);//选中某项 // $('#example-select-onChange').multiselect('deselectAll', '', tr

NARUTONEPIECE的博客 1092

Bootstrap Multiselect入门指南:10分钟快速创建优雅多选下拉框

Bootstrap Multiselect是一款基于jQuery和Twitter Bootstrap的多选下拉框插件,它能将普通的多选select元素转换为带有复选框的优雅下拉菜单,提供直观的用户体验。无论是表单选择、数据筛选还是选项分组,这款免费插件都能帮助开发者快速实现专业级的交互效果。 ### 为什么选择Bootstrap Multiselect? 传统的HTML多选框往往显得单调且用户

gitblog_00705的博客 526

react-bootstrap-multiselect:为 React 应用增添强大的多选功能

react-bootstrap-multiselect:为 React 应用增添强大的多选功能 在现代前端开发中,React 已经成为主流的 JavaScript 库之一,其组件化的设计理念大大提高了开发效率和项目可维护性。而多选框组件是界面交互中不可或缺的部分,今天要介绍的正是这样一个功能强大的 React 多选组件——react-bootstrap-multiselect。 项目介绍 reac...

gitblog_00419的博客 1092

bootstrap-multiselect样式修改

问题 bootstrap-multiselect是一款相当不错的bootstrap风格下拉框组件,但是它的某些样式我不是很喜欢,按钮文本和下拉符号 “” 都是居中的,且下拉列表的宽度也没有跟随变动。 <script type="text/javascript"> $(document).ready(function() { $('#example...

445
上一篇: SeekableByteChannel接口定义
下一篇: FileChanne定义
Donald_Draper
博客等级 码龄14年 9粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值