当前位置: 首页 > news >正文

select2 取值 遍历 设置默认值

select2 取值 遍历 设置默认值

本章内容主要介绍Select2 的初始化,获取选中值,设置默认值,三个方法。Select2 美化了单选框,复选框和下拉框,特别是下拉框多选的问题。但同时,Select2也有很多吭。
效果图:
图片描述


需求:使用Select2实现下拉框多选,并获取选中值,初始设置默认值
技术:select2.js ,prototype.js,jquery.js
源码:https://github.com/ITDragonBl...
说明:select2是jquery插件,取值和设置默认值都可以用jquery单独完成。为什么用prototype.js ?因为在公司用prototype.js 写的,笔者因为各种原因,没有用jquery重写(原谅我比较懒)。还有一点值得注意:获取的文本值可能有空格哦!!!笔者就是被吭了一脸!
一切尽在代码中:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>select2实例</title>
<<link rel="stylesheet" href="bootstrap/3.3.0/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="select2-4.0.0/dist/css/select2.min.css" type="text/css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/css/select2.min.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="select2-4.0.0/dist/js/select2.min.js"></script>

</head>
<body>
    <label class="control-label col-sm-1">个性标签(checkbox): </label>
    <div class="col-sm-3">
        <select class="select_gallery-multiple" multiple="multiple" style="width:100%;" onchange="getSelectData()" id="mul-itdragon">
            <optgroup label="这样真的好么?">
                <option value="0">打野</option>
                <option value="01">上单</option>
                <option value="02">中单</option>
                <option value="03">送人头</option>
            </optgroup>
            <optgroup label="职位">
                <option value="1">土豪</option>
                <option value="2">屌丝</option>
                <option value="3">单身dog</option>
                <option value="4">苹果粉</option>
                <option value="5">苦逼程序员</option>
            </optgroup>
        </select>
    </div>
    <label class="control-label col-sm-1">个性标签(radio): </label>
    <div class="col-sm-3">
        <select class="select_gallery" style="width:100%;" id="itdragon">
            <optgroup label="这样真的好么?">
                <option value="0">打野</option>
                <option value="01">上单</option>
                <option value="02">中单</option>
                <option value="03">送人头</option>
            </optgroup>
            <optgroup label="职位">
                <option value="1">土豪</option>
                <option value="2">屌丝</option>
                <option value="3">单身dog</option>
                <option value="4">苹果粉</option>
                <option value="5">苦逼程序员</option>
            </optgroup>
        </select>
    </div>
    <script type="text/javascript">
        var $jq = jQuery.noConflict();
        
        // 初始化多选select2
        $jq(".select_gallery-multiple").select2();
        
        // 初始化单选select2
        $jq(".select_gallery").select2();
        
        // 默认选择
        select2ByText ("mul-itdragon", "苦逼程序员");
        select2ByValue ("itdragon", "03");
        
        // 通过id获取select2的value值
        function getSelect2Value(obj) {
            var select2Obj = $jq('#'+obj).select2();
            return select2Obj.select2("val");
        }

        // 通过id获取select2的text值,这里的text值可能有空格,需注意
        function getSelect2Text(obj) {
            var select2Obj = $jq('#'+obj).select2();
            return select2Obj.find("option:selected").text();
        }

        // 通过text 设置select2的默认值
        function select2ByText (obj, text) {
            var select2Obj = $jq('#'+obj).select2();
            $(obj).select("option").each(function(data){
                if (text == data.text.strip()) {
                    select2Obj.val(data.value).trigger("change");
                }
            });
        }

        // 通过value 设置select2的默认值
        function select2ByValue (obj, value) {
            var select2Obj = $jq('#'+obj).select2();
            select2Obj.val(value).trigger("change");
        }
        
        function getSelectData(){
            console.log(getSelect2Value("mul-itdragon"));
            console.log(getSelect2Text("itdragon"));
            var mulItdragonVal = $jq("#mul-itdragon").select2("val");
            if (null == mulItdragonVal) {
                console.log("Over !");
                return ;
            }
            console.log(mulItdragonVal);
            var mulItdragonData = $jq("#mul-itdragon").select2('data');
            mulItdragonData.each(function(data){
                console.log("value : ", data.id);
                console.log("text : ", data.text);
            });
            
        }
    </script>
</body>
</html>

这样就做好了,是不是很简单,如果不能满足你的需求,可以去官网学习:http://select2.github.io/exam...

相关文章:

  • 编译部署LAMP+xcache (php-fpm模式)
  • JavaScript函数式编程(一)
  • 向活动目录中添加一个子域
  • Python之模块介绍
  • 如何快速的提高自己:一切取决于你自己
  • 在sqlplus中create table出错,提示ORA-01950: 对表空间 'USERS'
  • 3、压滤机设备安装的连接点(压滤机污水源与压滤机连接点)
  • py_Django之表单
  • 十一有感
  • Java设计模式—门面模式(带案例分析)
  • SSRS 2012 交互式报表 -- 单层文档结构图
  • 异常: 2 字节的 UTF-8 序列的字节 2 无效。
  • linux中的优先搜索树的实现--prio_tree【转】
  • Linux内核驱动之GPIO子系统(一)GPIO的使用【转】
  • 数据库官方在线文档列表(mysql, postgreSQL)
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 2017届校招提前批面试回顾
  • Cookie 在前端中的实践
  • CSS居中完全指南——构建CSS居中决策树
  • PHP那些事儿
  • quasar-framework cnodejs社区
  • 构建工具 - 收藏集 - 掘金
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 大数据全解:定义、价值及挑战
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​决定德拉瓦州地区版图的关键历史事件
  • # 计算机视觉入门
  • #{}和${}的区别是什么 -- java面试
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (二)springcloud实战之config配置中心
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (十一)手动添加用户和文件的特殊权限
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .NET和.COM和.CN域名区别
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .stream().map与.stream().flatMap的使用
  • [ C++ ] STL_list 使用及其模拟实现
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [Android Pro] Notification的使用
  • [Angularjs]ng-select和ng-options
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [C++]类和对象(中)
  • [CISCN 2023 初赛]go_session
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [LeetCode系列]3元素最近和问题的O(n^2)解法
  • [linux] shell中的()和{}
  • [LitCTF 2023]Http pro max plus