Jquery Select2-3.3.2 autocomplete 使用



 Select2-3.3.2  官网:http://ivaynberg.github.io/select2/ 

先上一个自己的效果图,样式啥的基本没有调,主要测试从后台获取数据:

Jquery Select2-3.3.2 autocomplete 使用

一些基本的例子上面都有,但是在使用ajax从后台获取数据的时候有些问题,查了一些资料后,下面的链接给出了解决方案:http://it.toolbox.com/blogs/rymoore/select2-jquery-select-boxes-54810

官网上使用ajax方式调用返回的格式是 jsonp 的,jsonp什么的据说是跨域调用的,不太理解,下面这个链接详细解释了jsonp的使用及调用,没看懂:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

最终选择了返回json格式的数据,前台调用的格式为:

<input name="TEST_SEARCH" type="hidden" id="userSelect" style="width: 600px" /> 

//智能提示
$('#userSelect').select2({
            placeholder: "请输入货位码",
            minimumInputLength: 2,
            multiple:true,
            ajax: {
                url: "meselect.cmd?method=select2FromAjax",
                dataType: 'json',
                data: function (term, page) {
                    return {
                        q: term,
                        page_limit: 5,
                        area_id: "<%=area_id%>",
                        storearea_id: "<%=storearea_id%>",
                        house_id: "<%=house_id%>"
                    };
                },
                results: function (data, page) {
                    return { results: data.results };
                },
                
                formatResult: function(medata){
                }, 
   				formatSelection: resultFormatSelection,  // omitted for brevity, see the source of this page
   				dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
   				escapeMarkup: function (m) { return m; } 
            }
        });

function resultFormatResult(medata) {
        return medata.text;
    }

    function resultFormatSelection(medata) {
        return medata.text;
    }

  剩下要做的就是从后台拼接json串了,很多种方式,附件中有我的一个简单实现,当然可以使很复杂的逻辑(参见例子e9)

 使用注意事项:

1、引入的js及css文件

<link href="jsp/com/wms/component/select2-gh-pages/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="jsp/com/wms/component/select2-gh-pages/select2-3.3.2/select2.css" rel="stylesheet"/>
<link href="jsp/component/select2-gh-pages/bootstrap/css/bootstrap-responsive.css" rel="stylesheet"/>

<script src="jsp/com/wms/component/select2-gh-pages/js/json2.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/js/jquery-1.7.1.min.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/js/jquery-ui-1.8.20.custom.min.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/js/jquery.mousewheel.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/prettify/prettify.min.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/bootstrap/js/bootstrap.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/js/html5shim.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/select2-3.3.2/select2.js"></script>
<script src="jsp/com/wms/component/select2-gh-pages/select2-3.3.2/select2_locale_zh-CN.js"></script>
<link href="jsp/com/wms/component/select2-gh-pages/prettify/prettify.css" rel="stylesheet"/>

 2、上面引入的js中,一定要引入jquery-1.7.1.min.js,官网提供的jquery-1.8.1.min.js有些问题,会导致页面很慢

3、国际化,引入下面的模板即可

 <script src="jsp/com/wms/component/select2-gh-pages/select2-3.3.2/select2_locale_zh-CN.js"></script>

4、 多看官网的文档

备注:

1、附件 select2-src.zip 是server端的,参考下结构就可以了

2、附件 select2-gh-pages.zip 是web前端的组件

相关推荐