最近做项目,需要完成一个可搜索的select下拉框,最后选择了chosen这个插件来实现,很好用,简单记录一下这个插件的用法。
1.首先在官网上下载插件,导入项目
[email protected]、[email protected]这两张图片需要和chosen.css放在一起
2.引入
<script type="text/javascript" src="<%=path%>/js/chosen/js/chosen.jquery.min.js"></script>
<script type="text/javascript" src="<%=path%>/js/chosen/js/chosen.jquery.js"></script>
<link rel="stylesheet" type="text/css" href="<%=path%>/js/chosen/css/chosen.min.css">
<link rel="stylesheet" type="text/css" href="<%=path%>/js/chosen/css/chosen.css">
3.加载chosen样式
$(".cys-select").chosen({
no_results_text: "没有找到结果!",//搜索无结果时显示的提示
search_contains:true, //关键字模糊搜索,设置为false,则只从开头开始匹配
allow_single_deselect:true, //是否允许取消选择
enable_split_word_search:false,//是否开启分词搜索,默认开启
//disable_search:true,//隐藏单选搜索框
//disable_search_threshold:5,//少于5个时隐藏搜索框
width:'150px',
max_selected_options:6 //当select为多选时,最多选择个数
});
关于chosen参数的选项,网上有很多相关的介绍,需要的请自行搜索。需要多选的,在select中加入multiple开启多选
4.chosen的触发事件
$('.cys-select').on('change', function(e, params) {
//alert(params.selected);
var element = e.target;
//alert(element);
});
5.chosen监听的事件
$(".cys-select").val(params.selected);
$('.cys-select').trigger('chosen:updated');//用来更新chosen选框
6.注意
allow_single_deselect清空选中项 不起作用
select中必须有一个空的option,尤其是动态更新option的情况下,更新前后都要有一个空的option,否则不能正常显示清空图标
7.最终效果
8.chosen的搜索框是在<a>标签下控制的,可在chosen.jquery.js中调整其大小