【问题标题】:how to disable the multiple selection from the list box using jquery? or javascript?如何使用 jquery 禁用列表框中的多项选择?还是JavaScript?
【发布时间】:2011-05-23 02:58:14
【问题描述】:

我的页面中有一个列表框..

<td><%=Html.ListBox("listServiceTypes", Model.ServiceTypeListAll, new { style = "width: 500px;height:200px;" })%>

我需要禁止从列表框中选择多个项目吗?我正在做一些事情,比如选择一个项目并单击删除按钮我的页面从列表框中删除一个项目.. 但是如果我选择多个项目它会抛出错误消息/.?

任何人都可以帮助我如何停用或禁用列表框中的多个项目

【问题讨论】:

  • 这个 ASP 是否会生成 &lt;select multiple&gt;... 如果是这样,只需调用 $('#mySelect').removeAttr('multiple');

标签: javascript asp.net jquery asp.net-mvc asp.net-mvc-2


【解决方案1】:

我想获得一个带有单选而不是下拉列表的列表框。这让我明白了。基本上让 ListBoxFor 添加大小> 1,然后使用 jQuery 删除多选。

JS部分:

<script type="text/javascript">
    $(function () {
        $(document).ready(function () {
            $('.NoMultiSelect').removeAttr('multiple');
        });
    });
</script>

html部分:

@Html.ListBoxFor(m => Model.SelectedItems, Model.AllItems, new {  @class = "NoMultiSelect form-control", size = 4, style = "width: 250px; height: 300px;" })

【讨论】:

    【解决方案2】:

    可以使用以下 jQuery 做到这一点:

    $(function(){
      $("select[name='listServiceTypes']").removeAttr('multiple');
    });
    

    但是,最好在服务器端执行此操作。与其使用Html.ListBox,不如使用Html.DropDownList

    <%=Html.DropDownList("listServiceTypes", 
                    Model.ServiceTypeListAll, 
                    new { style = "width: 500px;height:200px", size=4 }); %>
    

    这消除了必须执行任何 jQuery/JavaScript 来删除 multiple 属性的需要,因为它生成几乎相同的 HTML,但没有 multiple 属性。 size 的值大于 1 会告诉浏览器将其显示为多行列表框。

    【讨论】:

      【解决方案3】:

      此脚本将关闭页面上所有选择控件的多选。

      <script type="text/javascript">
          $(document).ready(function () {
              $('select').removeAttr('multiple');
          });
      </script>
      

      【讨论】:

        猜你喜欢
        • 2011-01-11
        • 2012-06-12
        • 1970-01-01
        • 2018-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多