Select2下拉框总结

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

Select2下拉框总结

用了这么久的Select2插件,也该写篇文章总结总结。当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件。

在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下方法参数,比最初版本要好看一些,本文针对新版本。

官网:http://select2.github.io/ 

演示:

由于博客系统的原因,所以只能演示简单的功能。

一.文件需要引入select2.full.js、select2.min.css(4.0.1版本)和jquery.1.8.3及以上

最新版本的select2如果引用的jquery版本较低的话,某些功能无法正常使用。比如:清除功能allowClear: true

最新版本请使用<select></select>标签(对于本地化的数据你可以使用input,但ajax远程数据必须使用select)

二.placeholder

placeholder占位提示文字,如果需要清楚功能,则必须设置placeholder。

三.加载本地数据

select2默认的数据属性是id、text,新版本可以自定义,但还是用默认的比较好。所以提供的json中最好转换为id、text形式,当然可以添加其他属性。

复制代码
var data = [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }];
$("#c01-select").select2({
  data: data,
  placeholder:'请选择',
  allowClear:true
})
复制代码

四.加载远程数据

复制代码
$("#c01-select").select2({
  ajax: {
    url: "data.json",
    dataType: 'json',
    delay: 250,
    data: function (params) {
      return {
        q: params.term,
      };
    },
    processResults: function (data) {
      return {
        results: data
      };
    },
    cache: true
  },
  escapeMarkup: function (markup) { return markup; }, 
  minimumInputLength: 1,
  templateResult: formatRepo, 
  templateSelection: formatRepoSelection 
});
复制代码

说明:

     1.q: params.term 查询参数(params.term表示输入框中内容,q发生到服务器的参数名;所以这里你可以添加自定义参数,如:stype:'person')

     2.processResults中results: data返回数据(返回最终数据给results,如果我的数据在data.res下,则返回data.res。这个与服务器返回json有关)

     3.minimumInputLength 最小需要输入多少个字符才进行查询,与之相关的maximumSelectionLength表示最大输入限制。

     4.escapeMarkup字符转义处理

     5.templateResult返回结果回调function formatRepo(repo){return repo.text},这样就可以将返回结果的的text显示到下拉框里,当然你可以return repo.text+"1";等

     6.templateSelection选中项回调function formatRepoSelection(repo){return repo.text}

     7.关于返回的 json的格式:select2默认json格式为[{id:1,text:'text'},{id:2,text:'text'}],新版严格要求这样的格式,当然你可以添加列,如:[{id:1,text:'text',name:'liu'}]

五.获取选中项

复制代码
var res=$("#c01-select").select2("data")[0] ; //单选
var reslist=$("#c01-select").select2("data");    //多选
if(res==undefined)
{
     alert("你没有选中任何项");
}
if(reslist.length)
{
     alert("你选中任何项");
}
复制代码

六.清空选择项和设置不可用

复制代码
//清空选择
$("#c01-select").val(null).trigger("change");
$("#c01-select").val("你的placeholder").trigger("change");//或者
//如果你使用的是input标签(默认就是本地数据),你可以用
$("#c01-select").val('');来清空选项
//disabled
$("#c01-select").prop("disabled", false);//可用
$("#c01-select").prop("disabled", true);//不可用
复制代码

七.启用多选

$("#c01-select").select2({
  data:data,
  multiple: true
});

多选演示:

由于博客系统原因只能演示选择

八.下面简单说明新版与老版对比

1.结果回调和选中回调名称:formatResult、formatSelection(老版);templateResult、templateSelection(新版)

2.初始化:

复制代码
//老版,注意如果初始化时文本框中本身没有值(为空),则不会触发该方法
initSelection: function (element, callback) { var id = $(element).val(); var data = { id: id, text: id};//这里是初始化的数据,你可以通过id来从服务器上获取(ajax),再装载进去 callback(data); }
复制代码
//新版,直接给select添加option
$("#id").append(new Option("Jquery", 10001, false, true)); //或者 $("#id").append("<option value='10001'>Jquery</option>");

3.获取或设置值:select2("val")(老版);$("select").val()(新版)

推荐使用

var res = $("#id").select2("data");
//返回数组,单选就取res[0];好处是不进可以获取id、text还可以获取其他属性,如res[0].names

4.停用或启用:$("select").enable(false);(老版);$("select").prop("disabled", true);(新版)

5.主题样式:新版的样式已经更新,但如果想使用老版样式则可以设置 theme: "classic"

Bootstrap 4风格的select2下拉框 https://math-digital.cn/blog/8 阅读详情

相关推荐

下拉框可进行条件搜索select2.full.min.js

select2下拉框可进行条件搜索。select2.full.min.js https://blog.csdn.net/m0_38065515/article/details/87863729

select2的使用

需引入 <link href="${ctx}/select2/select2.min.css" rel="stylesheet" /> <script src="${ctx}/select2/select2.full.min.js"></script> <script src="${ctx}/assets-common/js/jquery-1.11.1.m...

weixin_42139945的博客 329

select2.min.css

select2插件可以实现下拉选单选、复选。select2插件给我们带来了更加友好的交互方式,比如查询控件展开后可通过关键字进行检索

Select2开源项目如何轻松加入到项目中

1.Select2控件的介绍 Select2为您提供了一个可定制的选择框,支持搜索、标记、远程数据集、无限滚动以及许多其他高度使用的选项。 2.Select2控件下载地址 https://github.com/select2/select2/releases 我在该页面下载的 https://github.com/select2/select2/releases下载的源代码,解压后

Tiger的专栏 6428

select2下拉框的显示及隐藏

select2下拉框,当输入框没有输入值的时候,点击输入框不显示所有数据,只有输入值了才把下拉框显示出来,由于没有找到官方提供的接口,所以用jq的一些方法实现。 首先在css里把下拉框先隐藏了 .select2 - container--classic.select2 - container--open.select2 - dropdown { display: none; ...

haogemr的博客 8791

重置select select2下拉框为选中状态

重置select2下拉框为初始状态/*重置select2下来框*/ $("#loc_city option:first").prop("selected", 'selected') $('#loc_city').trigger('change.select2'); // Notify only Select2 of changes

xiaoshen_joyin的博客 7451

select2下拉框】带搜索功能以及实现关联下拉框

/一定要[{"id":"","text":""},{}...]格式。后台直接取search参数,模糊查询即可。2、地区变化,机构下拉框中内容也随之变化。//请求的参数:地区编码、搜索关键字。3、当地区为时,显示全部机构列表。(具体样式相关代码不在此展示)//地区变化,重新加载机构列表。//此处填写自己的后台接口。//此处填写自己的后台接口。//首次加载全部机构列表。//初始化地区下拉框

qq_42622871的博客 2242

select2 支持多值下拉框

select2是一个非常好用的下拉框插件,支持很多功能。 官方文档,例子:http://select2.github.io/ 现在记录一下我在工作中用到的下拉框多值选择。 html定义: 首先引入css,js库 在html中定义如下下拉框: Alabama ... Wyoming //注意,上面加上multiple="

daydayupzzc的专栏 1万+

select2 ajax demo,Select2下拉框示例

在项目中,需要用到下拉框,于是找到了这个比较好用的select2插件,功能很强大,几乎能满足所有的下拉选择需求,选中之后可以点击取消选择的,另,本例连同ajax获取选择的数据一并提供。 添加极限活动$(document).ready(function(){});function transform(obj){var arr = [];for(var item in obj){arr.push(ob...

weixin_39744512的博客 353

jQuery的select2下拉框的搜索功能(使用select2插件,方便简单)

第一步: 引入我们用使用的插件 jquery: <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> select2: css: <link href="https://cdnjs.cloudflare.com/aj...

wJulio的博客 3万+

js拼接普通SELECT变为select2样式下拉框

html: <table id="ruleTable" class="table" style="width:274px"> <thead> <tr> <th style="width:150px;">筛选...

world_the_begin的博客 2301

yii2使用带搜索功能的下拉框select

yii2使用带搜索功能的下拉框select)示例使用composer安装select2包代码中使用问题Wechat 示例 示例图片(未使用搜索) 示例图片(使用搜索) 使用composer安装select2包 composer require kartik-v/yii2-widget-select2 代码中使用 &amp;lt;?= $form-&amp;gt;field($model, 'p...

AndyYoungDev 1249

HTML:select2多选下拉框

1、Head标签内引入所需要的链接css样式 <th:block th:include="include :: select2-css" /> 2、在需要整多选下拉框的地方加入这个 <div class="form-group"> <label class="col-sm-3 control-label">能源分类+分项:</label> <div class="co...

weixin_60948956的博客 4967

重置 select2 下拉框 方法

$('.resetSelect2').on('click',function(){ $('#caseSelect').val(null).trigger("change"); // 或者 $('#caseSelect').select2('val','all'); });

insomnia_1234的博客 4852

select2 手动输入匹配下拉框内容可多选

这里我选择的是select2这个插件。 官网地址:https://select2.org/getting-started/builds-and-modules 主要实现输入框可以有多选下拉框 <div style="width:100%;height:70px;margin-left: 20px;" id ="multipleDiv"> <h2 class="...

任玉 2068

django ajax下拉框搜索,Django实现jquery select2带搜索的下拉框

最近在开发一个web应用中需要用到带搜索功能下拉框,曾经尝试网上的django 包, django-select2-forms, 这是款功能强大的packets, 可惜不支持我的开发环境centos+python3.7+django 2.0.2, 只好下载原生jquery select2 ,通过参考官方文档,多次测试最终实现了简单的带搜索功能下拉框,它根据在前端搜索框输入的字符,ajax调用后台的...

weixin_39582480的博客 1216

select2 下拉框未对齐

select2 下拉框未对齐 由于下拉框是绝对定位所以控件body不能有外边距----body{margin:0;}

weixin_44008801的博客 735

使用select2模糊查询下拉框

使用select2模糊查询下拉框 介绍:select2是jQuery插件,是一款非常强大的模糊搜索的下拉框,适用于安卓,iOS和各种浏览器等。 需要引用:select2.min.css和select2.min.js css和js下载地址:链接:https://pan.baidu.com/s/1nJ83Z1nXxUNhtVfnL6UyAg 提取码:s8e8 复制这段内容后打开百...

qq_40002311的博客 1371
上一篇: 下拉列表Select2插件的使用
下一篇: select2 及tree用法,直接代码
linbren
博客等级 码龄24年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值