• js:jquery multiSelect 多选下拉框实例


    <!doctype html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
            <meta name="apple-mobile-web-app-capable" content="yes">
            <meta name="apple-mobile-web-app-status-bar-style" content="black">
            <meta name="format-detection" content="telephone=no">
            <title>三级联动多选下拉框</title>
            <script src="<?php echo base_url() ?>js/jquery-1.7.2.min.js"></script>
            <link href="<?php echo base_url(); ?>css/buildfair/jquery-ui.css" rel="stylesheet" />
            <script src="<?php echo base_url() ?>js/jquery-ui.min.js"></script>
            <script src="<?php echo base_url() ?>js/jquery.multiselect.min.js"></script>
            <script src="<?php echo base_url() ?>js/jquery.multiselect.zh-cn.js"></script>
            <link href="<?php echo base_url(); ?>css/buildfair/jquery.multiselect.css" rel="stylesheet"/>
    
            <script src="<?php echo base_url() ?>js/jquery.multiselect.filter.js"></script>
            <link href="<?php echo base_url(); ?>css/buildfair/jquery.multiselect.filter.css" rel="stylesheet"/>
    
        </head>
        <body>
            <div>   
                <p>多选下拉框:</p>
                <select id="first_dist" multiple="multiple" data-level="1" style="display: none;">
                    <?php foreach ( $firstDist as $row ): ?>
                        <option value="<?php echo $row[ 'id' ]; ?>"><?php echo $row[ 'name' ]; ?></option>
                    <?php endforeach; ?>
                </select>
                <select id="second_dist" multiple="multiple" data-level="2" style="display: none;"> 
                </select>
                <select id="third_dist" multiple="multiple" data-level="3" style="display: none;"> 
                </select>
                <select id="fourth_dist" multiple="multiple" data-level="4" style="display: none;"> 
                </select>
                <br/>
            </div>
            <div>
                <p>单选下拉框:</p>
                <select id="first_dist_single" style="display: none;">
                    <?php foreach ( $firstDist as $row ): ?>
                        <option value="<?php echo $row[ 'id' ]; ?>"><?php echo $row[ 'name' ]; ?></option>
                    <?php endforeach; ?>
                </select>
            </div>
    
            <div>
                <p>单选下拉框(带搜索功能):</p>
                <select id="first_dist_single_filter" style="display: none;">
                    <?php foreach ( $firstDist as $row ): ?>
                        <option value="<?php echo $row[ 'id' ]; ?>"><?php echo $row[ 'name' ]; ?></option>
                    <?php endforeach; ?>
                </select>
            </div>
        </body>
    </html>
    <script>
        (function() {
            // 默认只显示选择了的3个
            var DEF_SHOW_SELELCTED_NUMBER = 3;
    
            $("#first_dist_single").multiselect({
                multiple: false,
                header: "选择一项",
                selectedList: 1
            });
    
            $("#first_dist_single_filter").multiselect({
                multiple: false,
                noneSelectedText: "请选择",
                selectedList: 1
            }).multiselectfilter();
    
            $("#first_dist").multiselect({
                selectedList: DEF_SHOW_SELELCTED_NUMBER,
                noneSelectedText: '请选择省市',
                close: function(event, ui) {
                    showNextDist($(this));
                }
            }
            );
            var showNextDist = function(obj) {
                var level = obj.data('level'),
                        nextLevel = parseInt(level) + 1,
                        nextDistNode = null, defaultText = '';
                if (parseInt(nextLevel) === 2) {
                    nextDistNode = $('#second_dist');
                    defaultText = '请选择市县';
                } else if (parseInt(nextLevel) === 3) {
                    nextDistNode = $('#third_dist');
                    defaultText = '请选择地级市';
                } else if (parseInt(nextLevel) === 4) {
                    nextDistNode = $('#fourth_dist');
                    defaultText = '请选择区镇';
                }
                var selectedArr = obj.multiselect("getChecked").map(function() {
                    return this.value;
                }).get();
                var selectedVal = selectedArr.join(',');
                if (selectedVal !== '') {
                    var url = '<?php echo site_url(); ?>/m/buildfair/get_district';
                    $.post(url, {upid: selectedVal, level: nextLevel}, function(data) {
                        if (data.success) {
                            var srcData = data.data;
                            if (nextDistNode !== null && srcData.length > 0) {
                                nextDistNode.html('');
                                for (index in srcData) {
                                    var opt = srcData[index]
                                    nextDistNode.append('<option value="' + opt.id + '">' + opt.name + '</option>');
                                }
                                nextDistNode.multiselect({
                                    selectedList: DEF_SHOW_SELELCTED_NUMBER,
                                    noneSelectedText: defaultText,
                                    close: function(event, ui) {
                                        showNextDist(nextDistNode);
                                    }
                                }).multiselect('refresh');
                            }
                        }
                    }, 'json');
                } else {
                    if (nextDistNode !== null) {
                        nextDistNode.multiselect().multiselect("destroy").hide();
                        var nextDistLevel = nextDistNode.data('level');
                        if (parseInt(nextDistLevel) === 2) {
                            $('#third_dist').multiselect().multiselect("destroy").hide();
                            $('#fourth_dist').multiselect().multiselect("destroy").hide();
                        } else if (parseInt(nextDistLevel) === 3) {
                            $('#fourth_dist').multiselect().multiselect("destroy").hide();
                        }
                    }
                }
            }
    
        })();
    </script>


    注:记得要引入相关的js和css文件。如果不知道去哪找,这里有个链接,在里面可以找到:

    http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/#basic


  • 相关阅读:
    单表清除重复数据
    调用webApi封装
    简单写入本地日志,日志文件位置与主程序exe位置相同
    APPConfig.XML获取配置文件(主程序和Dll各自的)
    获取当前运行程序上一级目录指定文件夹,没有就创建文件夹
    shell脚本中的单引号和双引号以及反引号详解
    Linux shell中反引号(`)的应用
    关于网页 硬解 软解 H264 HEVC 和你电脑起飞了那点事
    浏览器支持H.265解码总结
    微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3174506.html
Copyright © 2020-2023  润新知