【问题标题】:How to add disable selected option in select2 dropdown?如何在 select2 下拉列表中添加禁用选定选项?
【发布时间】:2017-05-11 13:45:46
【问题描述】:

说明:

我正在使用 Select2 进行下拉菜单,并且我正在尝试禁用列表中的选定选项。我写了下面给出的代码,但它不起作用。这段代码有错误吗?

代码:

$("#Users").change(function () {
            $(".select2-results .select2-results__option[aria-selected=true]").each(function () {
                $(this).attr("disabled","disabled");
            });
        });

HTML:

<div class="form-group">
            @Html.Label("Send Mail To", new { @class = "control-label", @style= "position: absolute;margin-top:18px;" })
            <a id="clearSelectedUsers" class="pull-right btn btn-primary M-B10">Clear</a>
            @Html.DropDownListFor(m => m.Users, new SelectList(Model.Users, "Email", "Name"), "Select", new { multiple = "multiple", @class = "form-control" ,@disabled = "disabled" })
        </div>

脚本:

var usersSelect2 = $("#Users").select2(); usersSelect2.val(toBeSelectedManagers).trigger("change");

【问题讨论】:

    标签: jquery jquery-select2


    【解决方案1】:

    尝试: 1.如果你想禁用完整的select元素然后

    $("#Users").change(function () {
         $("#Users").prop("disabled", true);
       });
    

    $("#Users").change(function () {
         $(this).prop("disabled", true);
       });
    

    2.如果你想禁用selected option 然后做类似的事情

    $("#Users").change(function () {
        $.each(this.options, function (i, item) {
            if (item.selected) {
                $(item).prop("disabled", true); 
            }else {
                $(item).prop("disabled", false);
            }
        });
     });
    

    您可以在this 链接中找到更多信息。

    【讨论】:

    • 对不起!我试过这个标题的东西就是一个例子。
    • 请出示您的 html 否则无法解决?@user7745736
    • $("#Users").change(function () { $(".select2-results .select2-results__option[aria-selected=true]").each(function () { alert (“测试”) }); });此代码显示警报的次数与选择的选项一样多。但当我尝试禁用它时不起作用。
    • 否 :-( ,第一个和第二个解决方案是禁用组合框 (#Users),第三个解决方案什么也不做。
    • @user7745736 抱歉我之前的回答。我测试并更新我的答案。请检查一下。
    【解决方案2】:

    选择下拉一个值下次选择不能选择相同的值:

    $("#m_select2_2").select2().on("select2:select", function(e) {
      var selected_element = $(e.currentTarget);
      var select_val = selected_element.val();
      $.each(this.options, function(i, item) {
        if (item.selected) {
          $(item).prop("disabled", true);
        }
      });
      console.log(select_val);
      $('select').select2();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      相关资源
      最近更新 更多