实现基于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"></script>
<link rel="stylesheet" href="/bootstrap/css/bootstrap.css" type="text/css"/>
<script type="text/javascript" src="/js/bootstrap-multiselect.js"></script>
<link rel="stylesheet" href="/css/bootstrap-multiselect.css" type="text/css"/>
2、html代码
<div id="mulDiv">
<select class="form-control" id="multiselect" multiple> <!-- 这里加上multiple为多选-->
<option value="1">广东</option>
<option value="2">广西</option>
<option value="3">湖南</option>
<option value="4">江西</option>
<select>
<div>
3、js代码
$(fucntion(){
//初始化
$("#multiselect").multiselect({
buttonWidth:150px, //这里可以设置多选框的样式等各种属性
});
//获取多选框的值,和一般获取值一样,只是获取到的是一个数组,如果要转为string,可以先判断非空后 .toString();即可
var multiselectarr =$("#multiselect").val();
//多选的回显,比如后台传过来的该字段的值为:multiselect_str = 1,2,3
if(multiselect_str .indexOf(",")>-1){
var multiselect_arr = multiselect_str.split(",");//以逗号分割为数组
var multiselect_arr2 = [];//定义一个空数组
for(var i=0;i<multiselect_arr.length;i++){
multiselect_arr2.push(multiselect_arr[i]);
}
$("#multiselect").multiselect('select',multiselect_arr2);//原本直接把分割的数组multiselect_arr 放进去不生效
}else{//如果返回的只是multiselect_str = 2
$("#multiselect").multiselect('select',[multiselect_str ]);
}
//多选框的清空
$("select option").attr("selected",false);
$("#multiselect input[type='checkbox']").each(fucntion(){this.checked=false;});//把这个div下的input为checkbox的清空
$("li").removeClass("active");//把每一个下拉选项的li的class属性的active去掉
});