精华内容
下载资源
问答
  • 先看视频:下拉多选菜单https://www.zhihu.com/video/1070640311239249920在日常工作中,有时候我们需要在单元格中输入多个固定内容的某几个项,手动输入很麻烦,我今天就带大家用excel的vba制作多选输入菜单。...

    先看视频:

    a12ab3a56d5bc90d0b4b5a25a75f1e24.png
    下拉多选菜单https://www.zhihu.com/video/1070640311239249920

    在日常工作中,有时候我们需要在单元格中输入多个固定内容的某几个项,手动输入很麻烦,我今天就带大家用excel的vba制作多选输入菜单。

    以excel 2010为例

    1、开启宏设置

    新建excel,打开,依次点击:文件→选项→信任中心→信任中心设置→ActiveX设置,按下图选择,点击确认。

    a6ac9e09fb05c19859e2169244d7ea53.png

    2、添加开发工具

    依次点击:文件→选项→自定义功能区,右侧选择“所有选项卡”,下面勾选“开发工具”,点确认。

    04458810f0363668c88cb50284c99518.png

    3、重命名sheet1为主表,sheet2位复选,在复选表中添加要在下拉菜单中呈现的数据。

    注意:本示例中,复选表中的数据是从E列开始的,主表中能显示下拉菜单的列,也是从E列开始的。

    4、插入listbox控件,设置属性

    点击excel菜单“开发工具”,点击插入,选择“列表框”,在excel中画一个列表框控件,鼠标右键此控件,选择属性,在打开的属性对话框里将ListStyle设置为1-fmListStyleOption,将Multiselest设置为1-fmMultiSelectMulti,并确保“(名称)”属性为ListBox1

    d198f084eb89d051450911ed1d510ea8.png
    https://www.zhihu.com/video/1070647988464115712

    5、点击主表,再点击Excel菜单“开发工具”,选择“查看代码”,复制下面的代码

    Private Sub ListBox1_Change()
    Dim TXT As String
    Dim i As Integer, k As Integer
    TXT = ""
    k = 0
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            k = k + 1
            If TXT = "" Then
                TXT = k & "." & ListBox1.List(i)
            Else
                TXT = TXT & vbCrLf & k & "." & ListBox1.List(i)
            End If
            'TXT = IIf(TXT = "", ListBox1.List(i), TXT & "," & ListBox1.List(i))
        End If
    Next
    ActiveCell.Value = TXT
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim DSoucre As String
    Dim EndRow As Long
    Dim ColName As String
    If Selection.Count <> 1 Then ListBox1.Visible = False: Exit Sub
    If Not (Target.Row > 3 And Target.Column > 4) Then
        ListBox1.Visible = False
        Exit Sub
    End If
    'MsgBox Split(Target.Address, "$")(1)
    ColName = Split(Target.Address, "$")(1)
    EndRow = Sheets("复选").Columns(ColName & ":" & ColName).Find("*", , , , xlByRows, xlPrevious).Row
    If EndRow <= 2 Then
        MsgBox "无数据"
        Exit Sub
    End If
    DSoucre = "复选!" & ColName & "2:" & ColName & EndRow
    With ListBox1
        .ListFillRange = DSoucre
        .ListStyle = fmListStyleOption
        .MultiSelect = fmMultiSelectMulti
        .Top = Target.Top + Target.Height
        .Left = Target.Left
        .Width = Target.Width
        ListBox1.Visible = True
    End With
    End Sub
    b2dc148acd0c5e870c25b22892999708.png
    https://www.zhihu.com/video/1070651553697824768

    以上...

    下节课继续,但是我不知道要写什么......

    评论里可以提要求,我会选一个,下节课出教程

    ps: 如果有特别需求需要定制,可以私信我

    展开全文
  • 原标题:Axure教程:下拉多选列表集合(多选下拉列表+单选下拉列表+分级下拉列表)之前和大家分享了 《》、《》,很多同学私信我说很好使用,希望能够做一个多选下拉列表的教程所以今天就和大家分享怎么用中继器制作...

    原标题:Axure教程:下拉多选列表集合(多选下拉列表+单选下拉列表+分级下拉列表)

    之前和大家分享了 《》、《》,很多同学私信我说很好使用,希望能够做一个多选下拉列表的教程

    所以今天就和大家分享怎么用中继器制作多选下拉列表。该原型制作完成后,下次使用简单,只需要填写中继器表格即可。

    原型预览:https://qu0b4r.axshare.com/

    下面是多选下拉列表的效果介绍,如果想看单选或者多级下拉列表的同学可以看回我之前的文章,或者点击上面原型预览地址查看。

    效果演示 1. 整体效果

    2. 选中和取消选中

    3. 查看全部已选中的标签

    默认显示2个标签,鼠标移入看查看全部标签

    4. 删除标签取消选中

    5. 模糊搜索效果

    6. 添加选项效果

    7. 全选和全部取消效果

    制作教程 1. 制作材料

    分为几部分,下拉框和弹出列表,如果需要搜索的话还需要搜索框、全选和取消全选的按钮。

    然后ui方面我就不详细说了,大家根据自己的喜好完成就可以了。

    2. 下拉框

    如上图所示制作成组合,分别有矩形,中继器,箭头符号

    中间的是用中继器来做的,默认显示项为2,鼠标移入时不限,鼠标移出时为2。每项加载时,设置文本=item.column0,默认为空不用填,下面会说到利用弹出列表内的中继器把内容导过来。点击中继器的X按钮,这里并不是删除改行,是取消弹出列表内的中继器对应行的选中,简单来说说就是这个中继器只是内容的显示。

    鼠标点击该组合时,切换弹出列表的可见性。然后旋转箭头180度,这里也可以用上下两个箭头,然后切换他们的可见性。

    3. 弹出列表

    弹出列表由背景框,内容中继器、搜索框全选和全部取消按钮组成,

    3.1 中部内容中继器

    材料:文本+多选按钮。这里系统的多选按钮太丑,所以我美化了一下,具体可以看回我之前的文章《建议收藏:Axure交互常用按钮组》

    交互逻辑:

    在中继器里填写内容,然后每项加载时将内容设置到文本。

    点击多选框的时候切换选中和取消,如果选中时,添加行到上面说到的下拉框标签中继器,如果取消选中时,删除下拉框标签中继器对应行。

    3.2 搜索

    这里这需要对中继器做模糊搜索就可以了,需要用到index函数,对搜索框内的输入的内容进行筛选。具体公式[[Item.text.indexOf(LVAR1)>-1]],item.text就是中继器表格的内容列,LVAR1是文本框输入内容。

    3.3 全选和全部取消

    这个很简单,鼠标单击全选时,让中继器内所有行都选中;鼠标单击全部取消时,让中继器内所有行都取消去选中

    今天的分享到这里就结束了,喜欢原型或者有疑问的小伙伴们可以在下方评论处给我留言哦,我们下期见。

    本文由 @梓贤Vigo 原创发布于人人都是产品经理。未经许可,禁止转载

    题图来自 Unsplash,基于CC0协议返回搜狐,查看更多

    责任编辑:

    展开全文
  • 下拉多选

    2019-09-28 18:15:52
    文件见附件: 使用方法: ...%--下拉列表 --%> <link href="../Styles/jquery-ui.css" rel="stylesheet" type="text/css" /> <link href="../Styles/jquery.multiselect.css" rel="sty...

    文件见附件:

    使用方法:

    1、前台代码

     <%--下拉列表 --%>
           <link href="../Styles/jquery-ui.css" rel="stylesheet" type="text/css" />
        <link href="../Styles/jquery.multiselect.css" rel="stylesheet" type="text/css" />
        <script src="../Scripts/jquery.1.7.2.min.js" type="text/javascript"></script>
         <script src="../Scripts/jquery-ui.min.js" type="text/javascript"></script>
        <script src="../Scripts/jquery.multiselect.js" type="text/javascript"></script>
    
         <script type="text/javascript">
             $(function () {
             //立项状态
                 $("#ddlStatus").multiselect({
                     header: false,
                     height: 200,
                     minWidth: 100,
                     selectedList: 10, //预设值最多显示10被选中项
                     hide: ["explode", 200],
                     noneSelectedText: '请选择',
                     close: function () {
                         var values = $("#ddlStatus").val();
                         $("#hdStatus").val(values);
                     }
                 });
                 //审核状态
                 $("#ddlEmailVerifyStatus").multiselect({
                     header: false,
                     height: 200,
                     minWidth: 100,
                     selectedList: 10, //预设值最多显示10被选中项
                     hide: ["explode", 200],
                     noneSelectedText: '请选择',
                     close: function () {
                         var values = $("#ddlEmailVerifyStatus").val();
                         $("#hdEmailVerifyStatus").val(values);
                     }
                 });
             });            
        </script>    
      <tr>
                    <td align="right">
                        立项状态:
                    </td>
                    <td>
                        <asp:ListBox ID="ddlStatus" runat="server" SelectionMode="Multiple" multiple="multiple" style="width:200px">
                        </asp:ListBox>
                        <input type="hidden" id="hdStatus" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        审核状态:
                    </td>
                    <td>               
                        <asp:ListBox ID="ddlEmailVerifyStatus" runat="server" SelectionMode="Multiple" multiple="multiple" style="width:200px">
                        </asp:ListBox>
                          <input type="hidden" id="hdEmailVerifyStatus" runat="server" />
                    </td>
                </tr>

    后台直接使用hd的值,值比如为001,002,003

    转载于:https://www.cnblogs.com/zhaolijing910/p/3915387.html

    展开全文
  • excel下拉多选实例

    2017-02-20 10:51:16
    excel VB 实现下拉多选功能
  • 方法一:使用multiple-select.js和multiple-select.css实现 ...  <select id='checkedLevel' style="width:120px;height:28px;" multiple="multiple">  <option value="1">...option v.

    方法一:使用multiple-select.js和multiple-select .css实现

    HTML代码:

      <select id='checkedLevel' style="width:120px;height:28px;" multiple="multiple">
        <option value="1">选项1</option>
        <option value="2">选项1</option>
        <option value="3">选项1</option>
        <option value="4">选项1</option>
        <option value="5">选项1</option>
        <option value="6">选项1</option>
        <option value="7">选项1</option>                                                                                                                                                           
      </select>                                                                                                                                                                                                                                                                          
    js代码:

      $('#checkedLevel').multipleSelect({
        addTitle: true, //鼠标点悬停在下拉框时是否显示被选中的值
        selectAll: false, //是否显示全部复选框,默认显示
        name: "质控级别",
        selectAllText: "选择全部", //选择全部的复选框的text值
        allSelected: "全部", //全部选中后显示的值
        //delimiter: ', ', //多个值直接的间隔符,默认是逗号
        placeholder: "质控级别" //不选择时下拉框显示的内容
      });

    //设置默认选中:其中数组中多个值用逗号分隔,值是option的value
      $("#checkedLevel").multipleSelect('setSelects', [1001,1002]);
    设置选中后关闭下拉框:
            $('#selectJcjb').multipleSelect("close");//其他的方法,可到js中去查看方法名,根据实际情况进行调用。


     

    参照网址:http://wenzhixin.net.cn/p/multiple-select/docs/index.html?locale=zh_CN#with-optgroups1

         https://www.jqueryscript.net/form/jQuery-Plugin-For-Selecting-Multiple-Elements-Multiple-Select.html

           http://www.jq22.com/yanshi2604

           http://www.jq22.com/jquery-info2604

           http://www.jq22.com/jquery-info20898?tdsourcetag=s_pcqq_aiomsg

    提示:也可以使用bootstrap.multiselect实现,参照网址:http://davidstutz.de/bootstrap-multiselect/

    原文:https://blog.csdn.net/shunhua19881987/article/details/81354122

    方法二:
     参考网址http://www.17sucai.com/pins/31871.html

            https://blog.csdn.net/haibo0668/article/details/79774558

    方法三:

     

    HTML代码:

      <select id="organId" name="organId" multiple="multiple" >

        <option value="1">选项1</option>
        <option value="2">选项1</option>
        <option value="3">选项1</option>
        <option value="4">选项1</option>
        <option value="5">选项1</option>
        <option value="6">选项1</option>
        <option value="7">选项1</option>                                                                                                                                                           
      </select>   

    用法:

     

    $(function () {
    
        $("#organId").fSelect();
    });

     


     

    css文件:

    .fs-wrap {
        position: relative;
        display: inline-block;
        width: 200px;
        font-size: 12px;
        line-height: 1;
    }
    
    .fs-label-wrap {
        position: relative;
        border: 1px solid #ddd;
        cursor: default;
    }
    
    .fs-label-wrap,
    .fs-dropdown {
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
    }
    
    .fs-label-wrap .fs-label {
        padding: 4px 22px 4px 8px;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
    }
    
    .fs-arrow {
        width: 0;
        height: 0;
        border-left: 6px solid transparent;
        border-right: 6px solid transparent;
        border-top: 6px solid #000;
        position: absolute;
        top: 0;
        right: 5px;
        bottom: 0;
        margin: auto;
    }
    
    .fs-dropdown {
        position: absolute;
        background-color: #fff;
        border: 1px solid #ccc;
        margin-top: 5px;
        width: 100%;
        z-index: 1000;
    }
    
    .fs-dropdown .fs-options {
        max-height: 200px;
        overflow: auto;
    }
    
    .fs-search input {
        width: 100%;
        padding: 2px 4px;
        border: 0;
    }
    
    .fs-option,
    .fs-search,
    .fs-optgroup-label {
        padding: 6px 8px;
        border-bottom: 1px solid #eee;
        cursor: default;
    }
    
    .fs-option {
        cursor: pointer;
    }
    
    .fs-option.hl {
        background-color: #f5f5f5;
    }
    
    .fs-wrap.multiple .fs-option {
        position: relative;
        padding-left: 30px;
    }
    
    .fs-wrap.multiple .fs-checkbox {
        position: absolute;
        display: block;
        width: 30px;
        top: 0;
        left: 0;
        bottom: 0;
    }
    
    .fs-wrap.multiple .fs-option .fs-checkbox i {
        position: absolute;
        margin: auto;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        width: 14px;
        height: 14px;
        border: 1px solid #aeaeae;
        border-radius: 2px;
        background-color: #fff;
    }
    
    .fs-wrap.multiple .fs-option.selected .fs-checkbox i {
        background-color: rgb(17, 169, 17);
        border-color: transparent;
        background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAYAAAD+Bd/7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAABMSURBVAiZfc0xDkAAFIPhd2Kr1WRjcAExuIgzGUTIZ/AkImjSofnbNBAfHvzAHjOKNzhiQ42IDFXCDivaaxAJd0xYshT3QqBxqnxeHvhunpu23xnmAAAAAElFTkSuQmCC');
        background-repeat: no-repeat;
        background-position: center;
    }
    
    .fs-wrap .fs-option:hover {
        background-color: #f5f5f5;
    }
    
    .fs-optgroup-label {
        font-weight: bold;
    }
    
    .hidden {
        display: none;
    }
    
    
    /*根据本项目自定义修改*/
    .visibility-hidden{
        display:block;
        visibility: hidden;
        position:absolute;
        top:0;
    }
    .deptWrap,.fs-wrap,.fs-label-wrap{
        width:100%;
        height:30px;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }
    .fs-wrap{position:relative}
    .fs-label-wrap .fs-label{
        padding: 0;
        height: 30px;
        line-height: 30px;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        padding-left:6px;
        padding-right:10px;
    }
    .btnFixed{
        height:28px;
        text-align:center;
    }
    .btnFixed>.buttonDefault{
        width: 60px;
        height: 24px;
        background: rgb(86, 148, 254);
        border: none;
        margin-left: 10px;
        color: #fff;
        margin-top: 2px;
        border-radius: 4px;
    }
    .btnFixed>.buttonDefault:hover{
        background: rgb(181, 226, 254);
        color: #4284f5;
    }
    .fs-search{padding:2px 8px;}
    .fs-dropdown{
        margin-top: 0px;
        box-shadow: 4px 4px 4px #ddd;
    }
    .fs-wrap.multiple .fs-option.selected .fs-checkbox i{
        background-color: rgb(86, 148, 254);
    }

     

    js文件:

    (function($) {
    
        $.fn.fSelect = function(options) {
    
            if (typeof options == 'string' ) {
                var settings = options;
            }
            else {
                //默认配置项
                var settings = $.extend({
                    placeholder:  ' ===请选择=== ',//占位符,默认显示什么
                    numDisplayed: 10,//设置页面上可以显示几个选项(超出这个数量将会显示选择了n项)
                    overflowText: '选择了{n}项',//超出这个数量将会显示"选择了n项"
                    searchText: '搜索',//搜索框中占位符显示什么字
                    showSearch: true//是否显示搜索框
                }, options);
            }
    
    
            /**
             * Constructor
             */
            function fSelect(select, settings) {
                this.$select = $(select);
                this.settings = settings;
                this.create();
            }
    
    
            /**
             * Prototype class
             */
            fSelect.prototype = {
                create: function() {
                    var multiple = this.$select.is('[multiple]') ? ' multiple' : '';
                    this.$select.wrap('<div class="fs-wrap' + multiple + '"></div>');
                    this.$select.before('<div class="fs-label-wrap"><div class="fs-label">' + this.settings.placeholder + '</div><span class="fs-arrow"></span></div>');
                    this.$select.before('<div class="fs-dropdown hidden"><div class="fs-options"></div></div>');
                    // this.$select.addClass('hidden');
                    this.$select.addClass('visibility-hidden');
                    this.$wrap = this.$select.closest('.fs-wrap');
                    //添加全选和清空按钮
                    var BtnFixed = '<div class="btnFixed"><button class="buttonDefault" id="selectAllBtn" type="button">全选</button><button class="buttonDefault" id="clearAllBtn" type="button">清空</button></div>';
                    this.$wrap.find('.fs-dropdown').append(BtnFixed);
                    this.reload();
                },
    
                reload: function() {
                    //如果设置显示搜索框,执行下面方法
                    if (this.settings.showSearch) {
                        var search = '<div class="fs-search"><input type="search" placeholder="' + this.settings.searchText + '" /></div>';
                        this.$wrap.find('.fs-dropdown').prepend(search);
                    }
                    var choices = this.buildOptions(this.$select);
                    //获取到所有option选项
                    this.$wrap.find('.fs-options').append(choices);
    
                    //选中当前已选的值
                    var valArr = this.$select.val();
                    // if(valArr.length){
                    if(valArr){
                        var $fsOption = this.$wrap.find('.fs-option');
                        valArr.forEach(function(currentValue){
                            $fsOption.each(function(){
                                if(currentValue == $(this).attr('data-value')){
                                    $(this).addClass("selected");
                                }
                            });
                        });
                    }
                    //获取到选中状态的选项
                    this.reloadDropdownLabel();
                },
    
                destroy: function() {
                    this.$wrap.find('.fs-label-wrap').remove();
                    this.$wrap.find('.fs-dropdown').remove();
                    // this.$select.unwrap().removeClass('hidden');
                    this.$select.unwrap().removeClass('visibility-hidden');
                },
                //获取select的option选项,并赋值到插件自定义的每一选项div里
                buildOptions: function($element) {
                    var $this = this;
    
                    var choices = '';
                    $element.children().each(function(i, el) {
                        var $el = $(el);
                        //支持 optiongroup
                        if ('optgroup' == $el.prop('nodeName').toLowerCase()) {
                            choices += '<div class="fs-optgroup">';
                            choices += '<div class="fs-optgroup-label">' + $el.prop('label') + '</div>';
                            choices += $this.buildOptions($el);
                            choices += '</div>';
                        }
                        else {
                            var selected = $el.is('[selected]') ? ' selected' : '';
                            choices += '<div class="fs-option' + selected + '" data-value="' + $el.prop('value') + '"><span class="fs-checkbox"><i></i></span><div class="fs-option-label">' + $el.html() + '</div></div>';
                        }
                    });
    
                    return choices;
                },
                //每次加载时判断一下插件自定义的每一选项div哪些是选中状态,将选中状态对应的文字,push到一个数组labelText里,页面上显示出来的文字就是数组中获取到的文字
                reloadDropdownLabel: function() {
                    var settings = this.settings;
                    var labelText = [];
    
                    this.$wrap.find('.fs-option.selected').each(function(i, el) {
                        labelText.push($(el).find('.fs-option-label').text());
                    });
    
                    if (labelText.length < 1) {
                        labelText = settings.placeholder;
                    }
                    else if (labelText.length > settings.numDisplayed) {
                        labelText = settings.overflowText.replace('{n}', labelText.length);
                    }
                    else {
                        labelText = labelText.join(', ');
                    }
    
                    this.$wrap.find('.fs-label').html(labelText);
                    this.$wrap.find('.fs-label').attr("title",labelText);
                    this.$select.change();
                }
            }
    
    
            /**
             * Loop through each matching element
             */
            return this.each(function() {
                var data = $(this).data('fSelect');
    
                if (!data) {
                    data = new fSelect(this, settings);
                    $(this).data('fSelect', data);
                }
    
                if (typeof settings == 'string') {
                    data[settings]();
                }
            });
        }
        /**
         * Events
         */
        window.fSelect = {
            'active': null,
            'idx': -1
        };
    
        function setIndexes($wrap) {
            $wrap.find('.fs-option:not(.hidden)').each(function(i, el) {
                $(el).attr('data-index', i);
                $wrap.find('.fs-option').removeClass('hl');
            });
            $wrap.find('.fs-search input').focus();
            window.fSelect.idx = -1;
        }
    
        function setScroll($wrap) {
            var $container = $wrap.find('.fs-options');
            var $selected = $wrap.find('.fs-option.hl');
    
            var itemMin = $selected.offset().top + $container.scrollTop();
            var itemMax = itemMin + $selected.outerHeight();
            var containerMin = $container.offset().top + $container.scrollTop();
            var containerMax = containerMin + $container.outerHeight();
    
            if (itemMax > containerMax) { // scroll down
                var to = $container.scrollTop() + itemMax - containerMax;
                $container.scrollTop(to);
            }
            else if (itemMin < containerMin) { // scroll up
                var to = $container.scrollTop() - containerMin - itemMin;
                $container.scrollTop(to);
            }
        }
        //插件选项的点击事件
        $(document).on('click', '.fs-option', function() {
            var $wrap = $(this).closest('.fs-wrap');
    
            if ($wrap.hasClass('multiple')) {
                var selected = [];
    
                $(this).toggleClass('selected');
                $wrap.find('.fs-option.selected').each(function(i, el) {
                    selected.push($(el).attr('data-value'));
                });
            }
            else {
                var selected = $(this).attr('data-value');
                $wrap.find('.fs-option').removeClass('selected');
                $(this).addClass('selected');
                $wrap.find('.fs-dropdown').hide();
            }
            $wrap.find('select').val(selected);
            $wrap.find('select').fSelect('reloadDropdownLabel');
        });
    
        $(document).on('keyup', '.fs-search input', function(e) {
            if (40 == e.which) {
                $(this).blur();
                return;
            }
    
            var $wrap = $(this).closest('.fs-wrap');
            var keywords = $(this).val();
    
            $wrap.find('.fs-option, .fs-optgroup-label').removeClass('hidden');
    
            if ('' != keywords) {
                $wrap.find('.fs-option').each(function() {
                    var regex = new RegExp(keywords, 'gi');
                    if (null === $(this).find('.fs-option-label').text().match(regex)) {
                        $(this).addClass('hidden');
                    }
                });
    
                $wrap.find('.fs-optgroup-label').each(function() {
                    var num_visible = $(this).closest('.fs-optgroup').find('.fs-option:not(.hidden)').length;
                    if (num_visible < 1) {
                        $(this).addClass('hidden');
                    }
                });
            }
    
            setIndexes($wrap);
        });
        //显示隐藏下拉选项
        $(document).on('click', function(e) {
            var $el = $(e.target);
            var $wrap = $el.closest('.fs-wrap');
    
            if (0 < $wrap.length) {
                if ($el.hasClass('fs-label')) {
                    window.fSelect.active = $wrap;
                    var is_hidden = $wrap.find('.fs-dropdown').hasClass('hidden');
                    $('.fs-dropdown').addClass('hidden');
    
                    if (is_hidden) {
                        $wrap.find('.fs-dropdown').removeClass('hidden');
                    }
                    else {
                        $wrap.find('.fs-dropdown').addClass('hidden');
                    }
    
                    setIndexes($wrap);
                }
            }
            else {
                $('.fs-dropdown').addClass('hidden');
                window.fSelect.active = null;
            }
        });
    
        $(document).on('keydown', function(e) {
            var $wrap = window.fSelect.active;
    
            if (null === $wrap) {
                return;
            }
            else if (38 == e.which) { // up
                e.preventDefault();
    
                $wrap.find('.fs-option').removeClass('hl');
    
                if (window.fSelect.idx > 0) {
                    window.fSelect.idx--;
                    $wrap.find('.fs-option[data-index=' + window.fSelect.idx + ']').addClass('hl');
                    setScroll($wrap);
                }
                else {
                    window.fSelect.idx = -1;
                    $wrap.find('.fs-search input').focus();
                }
            }
            else if (40 == e.which) { // down
                e.preventDefault();
    
                var last_index = $wrap.find('.fs-option:last').attr('data-index');
                if (window.fSelect.idx < parseInt(last_index)) {
                    window.fSelect.idx++;
                    $wrap.find('.fs-option').removeClass('hl');
                    $wrap.find('.fs-option[data-index=' + window.fSelect.idx + ']').addClass('hl');
                    setScroll($wrap);
                }
            }
            else if (32 == e.which || 13 == e.which) { // space, enter
                $wrap.find('.fs-option.hl').click();
            }
            else if (27 == e.which) { // esc
                $('.fs-dropdown').addClass('hidden');
                window.fSelect.active = null;
            }
        });
    
        //=========================全选=====================================
        $(document).on('click','#selectAllBtn', function( ) {
            var $wrap = $(this).closest('.fs-wrap');
    
            if ($wrap.hasClass('multiple')) {
                var selected = [];
    
                $wrap.find(".fs-option").addClass('selected');
                $wrap.find('.fs-option.selected').each(function(i, el) {
                    selected.push($(el).attr('data-value'));
                });
            }
            $wrap.find('select').val(selected);
            $wrap.find('select').fSelect('reloadDropdownLabel');
        });
        //=========================全不选/清空=====================================
        $(document).on('click','#clearAllBtn', function( ) {
            var $wrap = $(this).closest('.fs-wrap');
    
            if ($wrap.hasClass('multiple')) {
                var selected = [];
    
                $wrap.find(".fs-option").removeClass('selected');
                $wrap.find('.fs-option.selected').each(function(i, el) {
                    selected.push($(el).attr('data-value'));
                });
            }
            $wrap.find('select').val(selected);
            $wrap.find('select').fSelect('reloadDropdownLabel');
        });
    
    })(jQuery);

     

    展开全文
  • excel下拉复选多选 Excel下拉多选更新 (Excel Drop Down Multi-Select Update) I've done another update to the Data Validation Multiple Selection sample, thanks to a question from Pat, in a blog comment....
  • 下拉多选插件

    2019-07-26 18:24:32
    关于下拉多选插件select2的使用方法formSelect的用法见下 目前我了解到的下拉多选的插件有两个,一个是select2,另一个是formSelect。 本文主要介绍如何使用这两个插件。 select2的使用方法 到github上选择一个版本...
  • 轻量级Jquery下拉多选

    2018-08-07 16:38:55
    只需要Jquery,实现的轻量级下拉多选,非常好用。代码打开就可以使用。可以下载看看,运行下应该没有问题
  • 所以今天就和大家分享怎么用中继器制作多选下拉列表。该原型制作完成后,下次使用简单,只需要填写中继器表格即可。原型预览:https://qu0b4r.axshare.com/下面是多选下拉列表的效果介绍,如果想看单选或者多级下拉...
  • 之前和大家分享了《Axure教程:单选下拉列表集合(中继器填写表格即可使用)》、《Axure教程:分级下拉列表》,很多同学私信我说很好使用,希望能够做一个多选下拉列表的教程所以今天就和大家分享怎么用中继器制作多选...
  • jquery.multiselect 下拉多选插件 下拉复选框插件 可以直接使用的demo
  • 下拉多选控件示例源码 源码描述: 自定义一款下拉多选控件学习实例 可以通过ComboBox下拉选择多项内容并且动态绑定到listbox内容中 他们之间绑定是相互影响的。
  • 下拉多选控件介绍

    千次阅读 2017-07-21 16:12:55
    推荐一个很好用的下拉多选控件,这个控件是原生js写的,使用时只需引入一个js和一张样式图片就可以了。控件人性化设计,可以根据场景需要设置相应的功能。
  • 下拉多选checkbox

    千次阅读 2017-05-12 18:58:38
    下拉多选checkbox 本文原创,转载请注明出处 目录下拉多选checkbox目录 CSS代码 HTML代码 JS代码今天根据要求让实现下拉列表加入多选按钮,之前写过百度搜索效果,但是感觉不太适用。然后大概想了一下就动手开始试着...
  • 原生js实现的下拉多选控件,文件包里的demo.html列出了本文所讲方法函数的使用示例,可运行demo.html看看效果更有助于理解应用。
  • jquery插件实现下拉多选checkbox的效果

    热门讨论 2014-11-20 10:44:21
    jquery-ui-multiselect实现多选下拉框的效果,支持下拉多选的一个小demo
  • bootstrap-select 下拉多选,真的好用
  • c#winform下拉多选自定义控件(带全选),可以自己定义选择项的下拉框
  • 主要介绍了Element ui 下拉多选时 新增一个选择所有的选项,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 在做web页面时常常会用到EasyUI增加页面的效果,今天自定义两个EasyUI的控件,下拉单选和下拉多选, 在使用EasyUI时需要引用EasyUI的样式和js ,提供一个下载地址http://www.jeasyui.net/download/ 废话不多说,...
  • 如上图所示一个bootstrap的下拉多选,多选的数据存储在数据库后怎么把这个几个多选的数据在做编辑的时候回显在页面上,用什么方法或者属性,求教各位大神, 上面这个写法只能回显一个 存储的时候选择的是多个则回显...
  • 因为项目的需求,要求使用下拉多选来实现多个分类,网上搜了很多,包括jquery的select2,以及http://dotansimha.github.io/angularjs-dropdown-multiselect/docs/#/main里面的Basic Settings Example,可能是不会...
  • 使用VBA实现Excel下拉多选

    万次阅读 2019-02-13 17:42:37
    Excel的下拉多选 新项目需要excel导入时的下拉多选框 Excel表格下拉单选很简单,先给表格做成单选。参照 Excel要想做成多选首先需要启用宏,如果Excel中没有宏,需要下载 下载安装 安装完之后重启Excel。 点击宏,...
  • LayUI,xmSelect下拉多选

    2020-10-14 16:55:43
    LayUI,xmSelect下拉多选 示例,文档地址:https://maplemei.gitee.io/xm-select/#/component/install 基础用法 HTML: // 第一步,引入 xm-select.js <script src="/js/xm-select.js"></script> // ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,029
精华内容 811
关键字:

下拉多选