select2使用

简介: 一、简介   select2是Jquery用来代替选择框的一种组件。它让你可以定制下拉框,并且支持搜索、标记,远程数据源,无限滚动和其他更高级的功能。select2的下载地址为:https://select2.github.io/ 。

一、简介
  select2是Jquery用来代替选择框的一种组件。它让你可以定制下拉框,并且支持搜索、标记,远程数据源,无限滚动和其他更高级的功能。select2的下载地址为:https://select2.github.io/ 。这里使用到的是select2-4.0.0版本。下载该版本后,解压文件,在dist目录下有js与css文件。使用select就需要引用这些的文件。

二、使用
  1、引入jQuery与select2样式、js文件如下:

<link href="css/select2.min.css" rel="stylesheet" />
<script src="js/jquery.1.11.2.min.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/i18n/zh-CN.js"></script>

  这里用到的Jquery是1.11.2版本,zh-CN.js为select2本地化的文件。其中select2.min.css、select2.min.js与zh-Cn.js文件都是dist目录下的文件。

  2、示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>select2-4.0.0 示例</title>  
    <link href="css/select2.min.css" rel="stylesheet" />
</head>
<body>
    <div> 
        select2: <select id="test1"   style="width: 20%" multiple="multiple">
            <option ></option> 
            <option value="2">222222</option>  
            <option value="3">33223333</option>
            <option value="4">333333</option>
            <option value="5">223333</option>
            <option value="6">444444</option>
            <option value="7">555555</option>  
            <option value="8">666666</option>
            <option value="9">777777</option>
            <option value="10">98888888888888888888888888888888888777777</option>
        </select>
        <button id="clear2"  >清除</button>
        <button id="setValue"  >设置777777</button>
        <button id="getValue"  >获取</button>
        <button id="enable"  >enable</button>
        <button id="disable"  >disable</button>
    </div>    
    <div> 
        select2: <select id="test2"  style="width: 20%"  /><!-- 多选时加上multiple="multiple" 并在回显时,回传所选的值数组 -->
        <input id="personid" type="hidden" name="personid"  />
    </div>        

<script src="js/jquery.1.11.2.min.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/i18n/zh-CN.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
    //静态select渲染
    $('#test1').select2({
        placeholder: "请选择",
        language: "zh-CN"
    });

    $("#clear2").on("click", function () { //置空
        $("#test1").val(null).trigger("change"); 
    });

    $("#setValue").on("click", function () { //设置某一个值
        $("#test1").val("9").trigger("change"); 
    });

    $("#getValue").on("click", function () { //获取选中值
        alert($("#test1").val());
    });

    $("#disable").on("click", function () { //启用
        $("#test1").prop("disabled", true); 
    });

    $("#enable").on("click", function () { //禁用
        $("#test1").prop("disabled", false); 
    });

    //select2动态加载数据
    $("#test2").select2({
        placeholder: "请选择",
        language: "zh-CN",
        ajax: {
            url: "${ctx}/person/list.action",
            dataType: 'json',
            delay: 250,
            data: function (term, page) {
                console.log(term);
                return {
                    keyword : term,//输入的内容,会发给服务器进行查找
                    //以下两行可以在数据量大的时候用到(当下拉框往下拉的时候会加载下一页),数据量不大的时候,可以直接注释
                    pagesize : 20,//页面大小
                    page : page //当前页
                 };
             },
            results: function (data, page) { 
          var more = (page * ${tpagesize}) < data.total;//判断是还有记录
                return {
                    results: data.rows , more : more
                };
            }
          },
        escapeMarkup: function (markup) { return markup; }, 
        //  minimumInputLength: 1,
        formatResult: function(row) {//选中后select2显示的 内容
            return row.name;
        }, 
        formatSelection: function(row) { //选择的时候,需要保存选中的id
            $("#personid").val(row.id);
            return row.name;//选择时需要显示的列表内容
        }, 
    });    
});
</script>                                            
</body>
</html>

 

  对于动态渲染的下拉框,请求服务器后,服务器返回的数据是json数据。json数据格式如下:

{"total":200,"rows":[{"id":"10001", "name":"zhangsan"},{"id":"10001", "name":"zhangsan"},{"id":"10001", "name":"zhangsan"},{"id":"10001", 
"name":"zhangsan"},{"id":"10001", "name":"zhangsan"},{"id":"10001", "name":"zhangsan"}]}
目录
相关文章
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
1809 0
|
SQL 存储 算法
MySQL 8.0 新的火山模型执行器
# MySQL的总体架构 通常我们认为MySQL的整体架构如下, ![1.png](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/46a99cb928955a5c5759115e2e6ba1fe.png) 官方10年前开始就一直在致力于优化器代码的重构工作,目的是能确保在SQL的执行过程中有清晰的阶段,包括分离Parse和Resol
3022 0
MySQL 8.0 新的火山模型执行器
|
5月前
|
人工智能 Linux API
OpenClaw保姆级图文教程!阿里云/Win11/MacOS/Linux部署+百炼API配置+5款生态工具深度测评
“AI交互正在从网页端向桌面端迁移”——这是2026年AI工具领域最显著的趋势。过去,用户习惯在浏览器中与大模型互动,但网页端的速度限制、权限不足、网络依赖等问题,让越来越多人将目光转向桌面端。而OpenClaw生态的崛起,恰好填补了这一空白——官方桌面版、社区驱动的轻量UI、厂商定制工具等多款产品,正在重新定义“桌面AI”的价值:更快的响应速度、更高的系统权限、更强的隐私安全,以及更自然的操作体验。
1231 2
|
存储 缓存 算法
Flink RocksDB 状态后端参数调优实践
RocksDB 的配置也是极为复杂的,可调整的参数多达百个,没有放之四海而皆准的优化方案。如果仅考虑 Flink 状态存储这一方面,我们仍然可以总结出一些相对普适的优化思路。本文先介绍一些基础知识,再列举方法。
Flink RocksDB 状态后端参数调优实践
|
12月前
|
人工智能 搜索推荐 算法
流行趋势到底能不能预测?用数据分析告诉你真相!
流行趋势到底能不能预测?用数据分析告诉你真相!
561 9
|
缓存 数据中心 网络架构
5个减少网络延迟的简单方法
高速互联网对工作与娱乐至关重要,延迟和断线会严重影响效率和体验。本文探讨了导致连接缓慢的三个关键因素:吞吐量、带宽和延迟,并提供了减少延迟的实用方法。包括重启设备、关闭占用带宽的程序、使用有线连接、优化数据中心位置以及添加内容分发网络 (CDN) 等策略。虽然完全消除延迟不可能,但通过这些方法可显著改善网络性能。
4656 7
|
监控 Python
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
|
JavaScript
Vue2通知提醒框(Notification)
这篇文章介绍了如何在Vue 3框架中创建一个通知提醒框(Notification)组件,支持自定义延时关闭、弹出位置和五种不同样式的消息提示。
900 1
Vue2通知提醒框(Notification)
|
JSON 测试技术 数据安全/隐私保护
【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
【7月更文挑战第7天】Docker部署PDF多功能工具Stirling-PDF
1799 2
|
负载均衡 容灾 数据库
你知道三地五中心吗
你知道三地五中心吗
699 1

热门文章

最新文章