bootstrap selectpicker 下拉框使用详解

  • Post author:
  • Post category:其他


bootstrap selectpicker是bootstrap里比较简单的一个下拉框的组件,先看效果如下:

附上官网api链接,

http://silviomoreto.github.io/bootstrap-select/

.

拉框的使用上基本操作一般是:单选、多选、模糊搜索、动态赋值等,下面来看如何使用:

1、首先需要引入的css和js:

bootstrap.css

bootstrap-select.min.css

jquery-1.11.3.min.js

bootstrap.min.js

bootstrap-select.min.js

2、js代码如下:

$(function() {
	$(".selectpicker").selectpicker({
		noneSelectedText : '请选择'//默认显示内容
    });

        
        //数据赋值
		var select = $("#slpk");
		select.append("<option value='1'>香蕉</option>");
		select.append("<option value='2'>苹果</option>");
		select.append("<option value='3'>橘子</option>");
		select.append("<option value='4'>石榴</option>");
		select.append("<option value='5'>棒棒糖</option>");
		select.append("<option value='6'>桃子</option>");
		select.append("<option value='7'>陶子</option>");
                //初始化刷新数据
		$(window).on('load', function() {
			$('.selectpicker').selectpicker('refresh');
		});
 });

3、jsp内容:

<select id="slpk" class="selectpicker" data-live-search="true" multiple></select>

设置multiple时为多选,data-live-search=”true”时显示模糊搜索框,不设置或等于false时不显示。

4、下拉数据通过ajax从后台获取:

    $(function() {
		$(".selectpicker").selectpicker({
			noneSelectedText : '请选择'
		});
 
		$(window).on('load', function() {
			$('.selectpicker').selectpicker('val', '');
			$('.selectpicker').selectpicker('refresh');
		});
 
		//下拉数据加载
		$.ajax({
			type : 'get',
			url : basePath + "/lictran/tranStation/loadRoadForTranStationDetail",
			dataType : 'json',
			success : function(datas) {//返回list数据并循环获取
				var select = $("#slpk");
				for (var i = 0; i < datas.length; i++) {
					select.append("<option value='"+datas[i].ROAD_CODE+"'>"
							+ datas[i].ROAD_NAME + "</option>");
				}
				$('.selectpicker').selectpicker('val', '');
				$('.selectpicker').selectpicker('refresh');
			}
		});
	});


PS:


特别需要注意的是:当使用ajax异步方式添加下拉框的option时,一定要使用 $(‘.selectpicker’).selectpicker(‘refresh’);  对下拉框进行刷新,不然不会显示异步添加的option.

其他的一些方法:

获取已选的项:

var selectedValues = [];    
$("#slpk:selected").each(function(){
    selectedValues.push($(this).val()); 
});

选择指定项(编辑回显使用):

单选:$(‘.selectpicker’).selectpicker(‘val’, ‘列表id’);

多选:var arr=str.split(‘,’); $(‘.selectpicker’).selectpicker(‘val’, arr);


.selectpicker('val')

可以通过调用

val

元素上的方法来设置所选值。:


$(


'.selectpicker'


).selectpicker(


'val'


,


'Mustard'


);


$(


'.selectpicker'


).selectpicker(


'val'


, [


'Mustard'


,


'Relish'


]);

这不同于

val()

直接在

select

元素上调用。如果

val()

直接调用元素, bootstrap-select ui将不会刷新(因为只从用户交互时触发事件)。你必须自己调用ui刷新方法。

$(‘.selectpicker’).val(‘Mustard’);

$(‘.selectpicker’).selectpicker(‘render’);

// this is the equivalent of the above

$(‘.selectpicker’).selectpicker(‘val’, ‘Mustard’);


.selectpicker('selectAll')

选择在multi-select模式下的所有选项。


$(


'.selectpicker'


).selectpicker(


'selectAll'


);


.selectpicker('deselectAll')

这将取消选择在multi-select模式下的所有选项。


$(


'.selectpicker'


).selectpicker(


'deselectAll'


);


.selectpicker('render')

可以强制使用该

render

方法重新渲染bootstrap-select ui 。如果当编程时更改任何相关值而影响元素布局,这将非常有用。


$(


'.selectpicker'


).selectpicker(


'render'


);


.selectpicker('mobile') 手机可以滚动选项

。这将启用手机的原生菜单以进行选择页面上的菜单。检测浏览器的方法由用户决定。


if


( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {




$(


'.selectpicker'


).selectpicker(


'mobile'


);


}


.selectpicker('setStyle')

修改与按钮本身或其容器相关联的类。

如果更换容器上的类:

$(‘.selectpicker’).addClass(‘col-lg-12’).selectpicker(‘setStyle’);

如果更改按钮上的类(更改数据样式):

$(‘.selectpicker’).selectpicker(‘setStyle’, ‘btn-danger’);      // Replace Class

$(‘.selectpicker’).selectpicker(‘setStyle’, ‘btn-large’, ‘add’);      // Add Class

$(‘.selectpicker’).selectpicker(‘setStyle’, ‘btn-large’, ‘remove’);  // Remove Class


.selectpicker('refresh')

为了使用JavaScript以编程方式更新select,首先操作select,然后使用该

refresh

方法更新UI以匹配新状态。对于删除或添加选项时,或通过JavaScript禁用/启用选择时,这是必需的。

$('.selectpicker').selectpicker('refresh');
<select class="selectpicker remove-example">
  <option value="Mustard">Mustard</option>
  <option value="Ketchup">Ketchup</option>
  <option value="Relish">Relish</option>
</select>
 
<button class="btn btn-warning rm-mustard">Remove Mustard</button>
<button class="btn btn-danger rm-ketchup">Remove Ketchup</button>
<button class="btn btn-success rm-relish">Remove Relish</button>
$('.rm-mustard').click(function () {
  $('.remove-example').find('[value=Mustard]').remove();
  $('.remove-example').selectpicker('refresh');
});
  
$('.ex-disable').click(function () {
  $('.disable-example').prop('disabled', true);
  $('.disable-example').selectpicker('refresh');
});
 
$('.ex-enable').click(function () {
  $('.disable-example').prop('disabled', false);
  $('.disable-example').selectpicker('refresh');
});


.selectpicker('toggle')

以编程方式切换bootstrap-select菜单的打开/关闭。


$(


'.selectpicker'


).selectpicker(


'toggle'


);


.selectpicker('hide')

以编程方式隐藏bootstrap-select使用

hide

方法(这仅影响bootstrap-select自身的可见性)。


$(


'.selectpicker'


).selectpicker(


'hide'


);


.selectpicker('show')

以编程方式显示bootstrap-select使用

show

方法(这仅影响引导选项本身的可见性)。


$(


'.selectpicker'


).selectpicker(


'show'


);


.selectpicker('destroy')

要以编程方式销毁bootstrap-select,请使用该

destroy

方法。


$(


'.selectpicker'


).selectpicker(


'destroy'


);


属性:

在Html中添加multiple表示支持多选,不需要额外添加其他属性,样式!当为多选状态,选中的对象为数组,当为单选状态,选中的对象为字符串。

noneSelectedText:’请选择’

liveSearch:true/false 启用搜索栏

liveSearchStyle:begins 搜索栏样式?

actionsBox:true/false 启用全选,清除按钮

item:0 设置第0项为只能单选状态

hideDisabled:true/false 设置启用/禁用隐藏

valueField 值字段

textField 显示文本字段

size 显示项目的个数

width 下拉框宽度 单位px

value 选中的值,以”,”分隔

multiple:”true” 单选或者多选




selectpicker其他属性





版权声明:本文为Asa_Prince原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。