select2插件使用小记

  页面引入:

// 页面顶部
<link rel="stylesheet" type="text/css" href="css/select2.min.css">

// 页面底部
// 依赖jQuery,引入jQuery之后,还需引入以下js文件
<script type="text/javascript" src="js/select2/select2.full.min.js"></script>
<script type="text/javascript" src="js/select2/lang/zh-CN.js"></script>

  调用select2

var util = {
    //模糊匹配
    select2: function(options){
        select2(options);

        //将输入的值作为其值
        var inputAsValue = function($target, value){
            var id = "select2-" + $target.attr("id") + "-container";
            $("#advertiser_name_input").val(value).keyup();
            $("#"+id).text(value);
        };

        function select2(arg) {
            var requireName = arg.requireName;
            arg.target.select2({
                placeholder:arg.placeholder, // 文本框的提示信息
                language: ‘zh-CN‘,               minimumInputLength: 2, // 至少输入n个字符,才去加载数据                maximumInputLength: 100, // 限制最大字符,以防坑
                data: options.data,
                ajax: {
                    url: arg.url,
                    dataType: ‘json‘,
                    method: ‘post‘,
                    quietMillis:100,
                    delay: 250,
                    data: function (params) {
                        var data = {}, id;
                        data[arg.requireName] = params.term; // 查询的关键字
                        // data[‘page‘] = params.page;
                        return $.extend(true, data, arg[‘other‘]);
                    },
                    processResults: function (result, params) {
            // params.page = params.page || 1;
                        if(result && result.flag && !$.isEmptyObject(result.data)){
                            var resultData = result.data,
                                selectData = [], selectObj = {};
                            for(var i=0,len=resultData.length; i<len; i++){
                                selectObj = {
                                    ‘id‘: resultData[i][‘id‘] || ‘‘,
                                    ‘text‘: resultData[i][‘name‘] || ‘‘,
                                    ‘industry_id‘: resultData[i][‘industry_id‘] || ‘‘
                                };
                                selectData.push(selectObj);
                            }
                            return {
                               /* pagination: {
                                    more: (params.page * 30) < 100 //data.total_count
                                },*/
                                results: selectData
                            };
                        }else{
                            var noData = [
                                    {id:0,text:‘暂无数据‘}
                                ];
                            return {
                                results:noData
                            };
                        }
                    },
                    cache: true
                },
                escapeMarkup: function (markup) { return markup; },
                minimumInputLength: 1
            });
            arg.target.on("change", function(e){
                options.change && options.change();
            });
        }
    }
};

// 调用
pageFun.select2({
    target: $(‘#select‘),
    url: pageInfo.activityNameUrl,
    requireName: ‘key‘,
    callback: ‘‘,
    data: {‘id‘, 11},
    change: function(){
        var $select = $(‘#select‘);
        var data = $select.select2("data")[0];
        // 其余操作
    }
});

  注意:注释的代码可以实现第一次只显示30(若总条数>30),鼠标拖动滚动条往下滚时,再去请求再显示30条的效果;但是会重复显示之前的30条数据。

  设置默认值或回填值:

 if(selectId !=‘‘){
      $("#select").html(‘<option value="‘+selectId +‘">‘+selectVal+‘</option>‘).trigger(‘change‘);
 }

  显示全部:

名称:<select class="select-w100 select2" name="select" id="select">
          <option value="">全部</option>
     </select>
时间: 2024-10-10 16:43:54

select2插件使用小记的相关文章

select2插件的使用

前段时间用select2插件做了可选择可编辑的功能,一直没写笔记,今天又用到了写一下笔记,方便以后使用. 就以现在select2的新版本为准把 一.文件需要引入select2.full.js.select2.min.css(4.0.1版本)和jquery.1.11.1 最新版本的select2如果引用的jquery版本较低的话,某些功能无法正常使用.比如:清除功能 allowClear : true 最新版本请使用<select></select>标签 二.placeholder

基于 select2 插件的自做效果

select2插件很好用,但是样式在其基础上改了又改都觉得不好...于是选择只使用它的展示框,而不使用它的下拉框,自己写一个列表来配合使用,下图为修改后的样子: 选择的样子: 限制选择个数的样子: 下面说说思路: 1.使用 $(".select").on("select2:opening", function (e) {return false;}) 来阻止下拉框的弹出事件. 2.然后我们自己写一个列表,这里我用的是 angular ,直接 repeat 出来的列表

Select2插件 IE下 autofocus bug的解决方法

描述: Select2插件在IE中,当页面加载完毕后会自动的focus,弹出本来应该点击input才会有个提示语. 原因: 在select2的源码中第1849行左右,有一段监听input事件的代码,如下: this.$selection.on('keyup.search input', '.select2-search--inline',function (evt) { self.handleSearch(evt); }); 可以看到这里是使用HTML5的input事件去监听input中值的变化

Metronic_下拉列表Select2插件的使用

这个插件是基于Select的扩展插件,能够提供更加丰富的功能和用户体验,它的github官网地址为:https://select2.github.io/,具体的使用案例,可以参考地址:https://select2.github.io/examples.html. 我们在整个框架里面,用到了很多Select2控件来处理内容的显示,包括单选的下拉列表(包括级联选择框).复选的下拉列表.树形下拉列表等方式,界面效果如下所示. 1)编辑界面下的省份.城市.所在行政区的级联界面效果,选择省份,会加载对应

在select2插件中append下拉选,点击没反应的解决

今天前端大佬帮我解决了一个棘手的问题:克隆了已有系统的网页,尝试把复制下来的html改造成jsp.基本功能正常,然而点击新增按钮,出来的行无法点击下拉选,控制台也没报错. 项目用的是jeesite2.0框架,springMVC架构.下拉选默认使用了select2插件, 源代码:   <script type="text/javascript">//重新生成其他费用索引function resetOtherFeeListIndex() { $('#tblOtherFee').

select2插件单选及多选应用

html: select2单选 <form class="form-horizontal" role="form" id="form"> <select id="singleSelect" name="singleSelect" data-placeholder=“请选择” style="width:100%;"></select> </form

基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用

在上篇<基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用>介绍了数据的分页处理,使用了Bootstrap Paginator插件,另外对树形列表,采用了JSTree插件,本篇继续介绍在编辑页面中常用到的控件Select2,这个控件可以更加丰富传统的Select下拉列表控件,提供更多的功能和更好的用户体验. 1.Select2控件介绍 这个插件是基于Select的扩展插件,能够提供更加丰富的功能和用户体验,它的github官网地址为:http

select2 插件自定义 tag 选择问题

问题描述 select2 设置 tags = true 的时候可以输入并选择自定义的内容.但是最近出现了 <select> 重新插入初始化的时候,选择了自定义 tag 但是界面没有更新的情况. 插件版本: select2 4.0.1 查找 跟着源码跑了几遍才发现 select2 会对选择进行过滤,通过 getHighlightedResults 方法找到 select option:selected 的对应选项,如果当期 tag 是已选中的就直接 self.trigger('close', {

Select2插件 点击、选中事件 解读

首先说下默认的配置 JS$('.select').select2({ placeholder: 'Select an option' }); HTML<input type='text' class="select" /> 这个就可以很简单的使用了 其他配置项可以到官网看 http://select2.github.io/options.html#core-options 今天主要说下事件 原因 在开发中遇到最多的就是ajax加载数据之后,选中的一个时,要进行二级联动,甚至