多选下拉菜单插件,我该怎么做才能只显示所选项目的数量?

Multiselect dropdown menu plugin, how can i do to only show the number of itens selected?

我正在使用 asp.net 和 c# 开发一个学校项目,我需要让我的多 select 下拉菜单在文本框中显示 selected 的数量,就像他一样当我 select 超过 4 个元素时会执行此操作,但我需要始终执行此操作。存在这样做的任何方式,并且存在使文本框始终具有相同宽度的任何方式。

那是我什么都没有的盒子select

这就是我 select 1,2 或 3 个元素时的框

这就是我 select 超过 4 个选项时的方框

我的 select 代码。

<select class="listbox" asp-for="ap"  multiple" >
    @foreach(var i in Model.Aps)
    {
        <option value=@i.ap_id> @i.ap_name </option>
    }
</select>

<script type="text/javascript">
        $(function () {
            $(".listbox").multiselect({
                includeSelectAllOption: true
                                
            });
        });
</script>

我想在我 select 超过 4 个选项时显示,但总的来说,即使我只是 select 1,2 或 3 个元素,是否有任何方法可以做到这一点? 是否存在仅显示 10 个元素并且必须向下滚动才能看到其余元素的任何方式?

使用这个版本的 multiselect bootstrap 使文本框具有相同的宽度

"library": "bootstrap-multiselect@0.9.13",
"destination": "wwwroot/lib/bootstrap-multiselect/"

<script type="text/javascript">
        $(function () {
            $(".listbox").multiselect({
                includeSelectAllOption: true,
                buttonWidth: '100%',
                numberDisplayed: 5,                        
            });
        });
</script>

numberDisplayed 表示您 select 在显示“x selected”之前有多少选项

下面是工作demo,大家可以参考一下

 @model ViewM
        @{
            Layout = null;
        }
       //using CSS  to adjust the length of the scroll boxshow then show the  elements you want
        <style>
            .multiselect-container{
        
          max-height:282px;
          overflow:auto;
        }
        </style>
        
        
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script>
          <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
          <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
        
          <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script>
          <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css">
        
        
        <select class="listbox" asp-for="ap"  multiple   >
            @foreach(var i in Model.Aps)
            {
                <option value=@i.ap_id> @i.ap_name </option>
            }
        </select> 
        
           
        <script type="text/javascript">  
            $(function () {
                    $(".listbox").multiselect({
                        includeSelectAllOption: true, 
                       numberDisplayed: 0// set numberDisplayed to 0 then you can get  just select 1,2 or 3
                    });
        
                });
    
        </script>

参考:numberDisplayed How to hide the checkboxes?

结果: