zoukankan      html  css  js  c++  java
  • multi-select 左右选择插件

    multi-select 前端左右两端多选插件

    1、html 部分:

    {% extends 'base-layer.html' %}
    {% load staticfiles %}
    
    {% block css %}
        <link href="https://cdn.bootcdn.net/ajax/libs/multi-select/0.9.12/css/multi-select.min.css" rel="stylesheet">
        <style>
            .ms-container {
                 551px;
            }
        </style>
    {% endblock %}
    {% block main %}
        <div class="box box-danger">
            <form class="form-horizontal" id="selectUsersForm" action="" method="post">
                {% csrf_token %}
                <div class="box-body">
                    <div class="col-xs-6 col-xs-offset-1">
                        <div class="row">
                            <div class="col-sm-6 p-r-lg">
                                <button type="button" class="selectAll btn btn-link pull-left" style="margin-bottom: 10px;">
                                    选择全部
                                </button>
                            </div>
                            <div class="col-sm-6 p-r-0">
                                <button type="button" class="deselectAll btn btn-link pull-left">取消全部</button>
                            </div>
                        </div>
    
                        <select id="optgroup" multiple="multiple">
                            {% for item in line_list %}
                                <option value="{{ item.province }}{{ item.city }}">
                                    {{ item.province }}{{ item.city }}({{ item.nums }})
                                </option>
                            {% endfor %}
                        </select>
                    </div>
    
                </div>
    
                <div class="box-footer" style="display: none;">
                    <div class="row span7 text-center ">
                        <button type="button" id="btnCancel" class="btn btn-default margin-right ">重置</button>
                        <button type="button" onclick="btnSave()" class="btn btn-info margin-right ">保存</button>
                    </div>
                </div>
            </form>
        </div>
    {% endblock %}
    
    

    2、js 部分:

    {% block javascripts %}
        <script src="https://cdn.bootcdn.net/ajax/libs/multi-select/0.9.12/js/jquery.multi-select.min.js"></script>
        <script type="text/javascript">
            // 初始化
            $('#optgroup').multiSelect({
                selectableHeader: '<input class="left-search-input se-con form-control" type="text" placeholder="可选线路" >',//搜索框
                selectionHeader: '<input class="col-sm-12 right-search-input se-con form-control" type="text" disabled placeholder="已选线路">', //提示框
                selectableOptgroup: true,
                afterSelect: function (values) {
    
                },
                afterDeselect: function (values) {
    
                }
            });
    
            // 可选全选按钮
            $('button.selectAll').click(function () {
                $('#optgroup').multiSelect('select_all');
                return false;
            });
    
            // 已选全选按钮
            $('button.deselectAll').click(function () {
                $('#optgroup').multiSelect('deselect_all');
                return false;
            });
    
            // 搜索框实时查询
            $('input.left-search-input').on('input propertychange', function () {
                var inputValue = $(this).val().trim();
                var selections = $('#optgroup').siblings('.ms-container').find('.ms-selectable li.ms-elem-selectable');
                search(selections, inputValue)
            });
    
            $('input.right-search-input').on('input propertychange', function () {
                var inputValue = $(this).val().trim();
                var selections = $('#optgroup').siblings('.ms-container').find('.ms-selection li.ms-elem-selection');
                search(selections, inputValue)
            });
    
            function search(selections, inputValue) {
                $(selections).each(function () {
                    var thisValue = $(this).children('span').text();
                    if (thisValue.match(inputValue)) {
                        $(this).show();
                    } else {
                        $(this).hide();
                    }
                });
            }
        </script>
    
    {% endblock %}
    
    

    参考链接

    • 官网:http://loudev.com/
    • 另外一款类似插件:基于 bootstrapjQuery 左右移动多选框插件 multiselect.jshttps://crlcu.github.io/multiselect/examples/multiple-destinations.html
    • Vue-multiselecthttps://vue-multiselect.js.org/#sub-getting-started
  • 相关阅读:
    软件工程结课作业
    十三次作业
    十二次作业
    十一次作业
    十次作业
    找回感觉的练习
    CSS背景样式和列表样式
    盒子模型案例应用
    display属性
    margin外边距属性
  • 原文地址:https://www.cnblogs.com/midworld/p/13610954.html
Copyright © 2011-2022 走看看