从所选jquery中删除多个属性

问题描述 投票:0回答:1

我有一个包含所选插件的下拉菜单

@Html.DropDownListFor(x => x.ML.AccountID, Model.Accounts, new { id = "ddl_account", @class = "form-control form-control-sm chosen-select", @multiple = true })

通过jquery我想根据某个值进行单选或多选

if (element_text.includes('a')) {
     $("#ddl_account").removeAttr("multiple").trigger('chosen:updated');
          }
else {
      $("#ddl_account").attr("multiple", true).trigger('chosen:updated');
          }

但这没有任何区别,如果 element_text 包含 a ,它仍然是多选下拉菜单,尽管在检查窗口中,multiple 属性已被删除。

我也尝试过使用道具

if (element_text.includes('a')) {
     $("#ddl_account").prop("multiple", false).trigger('chosen:updated');
  }
else {
     $("#ddl_account").prop("multiple", true).trigger('chosen:updated');
     }

如何将所选选择从单个切换为多个,反之亦然? Jquery版本是3.3.1

javascript jquery asp.net-mvc jquery-chosen
1个回答
0
投票

解决方法是首先销毁现有的 Chosen 实例,然后根据您的条件将

<select>
元素更新为单选或多选,然后重新初始化 Chosen 以反映更改

function toggleDropdown(element_text) {
    var $select = $("#ddl_account");

    $select.chosen('destroy');

    if (element_text.includes('a')) {
        $select.prop("multiple", false);
    } else {
        $select.prop("multiple", true);
    }

    $select.chosen({
        width: "100%",
        disable_search_threshold: 10
    });
}

toggleDropdown(someTextVariable);
© www.soinside.com 2019 - 2024. All rights reserved.