最近回学校忙着毕业的事情,好久没更新博客了,今天有个需求是需要实现单选框实现下拉多选的功能,刚开始接收到这个需求的时候,最开始想到的是自己写个css+js模拟实现的功能,但是发现应用到项目中效果不是很好,毕竟咱是搞java的,前端开发还是不要逞英雄了,所以决定上网查插件了。
找了一圈,就发现jquery multiselect符合要求,但是网上的教程,都讲的比较模糊,走了好多弯路,可能我是自己理解力差了点,搞了好久终于会用了(关键是依赖文件不能少)。
使用前,首先是插件需要依赖的js和css文件(这是必须的,不然会运行不正常)
这些依赖的文件都是jquery-ui的文件,少了images前端会报错,因为插件内部引用了images文件。
调用方法,使用起来就很简单了
<select class="selquery" id="chargeback_type"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <script type="text/javascript"> $("#chargeback_type").multiselect({ noneSelectedText: "==请选择==", checkAllText: "全选", uncheckAllText: '全不选', selectedText:'当前有 #个被选中' }); </script>
最关键还是取值问题,因为涉及到多选,网上的资料,都没涉及到取值问题,只好找官方文档了,文档里面有一个方法
var array_of_checked_values = $("select").multiselect("getChecked").map(function(){ return this.value; }).get();
就是它了,通过这个方法,可以获取到,多选的值。
最后附上Jquery multiselect文档地址:http://www.erichynds.com/blog/jquery-ui-multiselect-widget