我有一个包含所选插件的下拉菜单
@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
解决方法是首先销毁现有的 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);