【发布时间】:2020-08-17 14:38:16
【问题描述】:
希望你们一切都好,一切顺利。
我正在使用多选引导下拉 jquery。我正在使用 asp.net 核心来填充列表框,它可以很好地进行选择、全选等。
但我希望当我从Dropdown A 中选择元素时,必须从dropdown B 中删除该元素,如果我从下拉列表 A 中取消选择元素,则必须在下拉列表 B 中添加/显示。反之亦然,如果在下拉列表 B 中选择了元素,则该元素从下拉列表 A 中删除,如果从下拉列表 A 中选择所有元素,则所有元素都从下拉列表 B 中删除,反之亦然。
希望大家理解。
例如:如果下拉列表 A 中的 A、B、C、D 值,如果我选择 A,那么它必须从下拉列表 B 中禁用或隐藏,如果我选择全部,则必须从下拉列表 B 中删除所有,反之亦然,下拉列表 B 为出色地,
Note: DropdownA and DropdownB both have same number of values/elements,same text ,same value,
查看
@section AddToHead{
<link rel="stylesheet" href="~/css1/bootstrap-3.1.1.min.css" type="text/css" />
<link rel="stylesheet" href="~/css1/bootstrap-multiselect.css" type="text/css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="~/js1/bootstrap-2.3.2.min.js"></script>
<script type="text/javascript" src="~/js1/bootstrap-multiselect.js"></script>
}
<form class="column" asp-controller="group" asp-action="createresult" style="height:100%;" method="post">
<span class="column" style="height:50px;">
@Html.ListBoxFor(x => x.AvailablePlayers, Model.AvailablePlayers, new { id = "PlayersTeamA", onChange = "getSelectedOptions(this)", multiple = "multiple" })
@Html.ValidationMessageFor(model => model.TeamOnePlayers)
</span>
<span class="column">
@Html.ListBoxFor(x => x.AvailablePlayers, Model.AvailablePlayers, new { id = "PlayersTeamB", onChange = "getSelectedOptions(this)", multiple = "multiple" })
@Html.ValidationMessageFor(model => model.TeamTwoPlayers)
</span>
</form>
</div>
@section Scripts {
<script type="text/javascript">
$(function () {
$('#PlayersTeamA').multiselect({
includeSelectAllOption: true
});
$('#PlayersTeamB').multiselect({
includeSelectAllOption: true
});
});
function getSelectedOptions(sel) {
var idddl = sel.id;
var opts = [],
opt;
var len = sel.options.length;
for (var i = 0; i < len; i++) {
opt = sel.options[i];
if (opt.selected) {
opts.push(opt);
var idul = sel.id;
alert(idul);
var ul = document.getElementById(idul);
ul.removeChild(ul.childNodes[1]);
}
}
return opts;
}
【问题讨论】:
-
通过在另一个选择中“仅禁用”选项不是最简单的方法吗?
-
是的,请提供我禁用对我来说很好,我也尝试通过 id 获取下拉列表并删除子项,但它不起作用,我看到控制台调试器应用于代码并且看起来像
- 没有id ,它只是类,当它转换为多选下拉引导程序时。我在这个问题上坚持了大约 2 天,但无法解决这个问题 :( 请帮帮我先生
标签: javascript jquery asp.net-mvc asp.net-core bootstrap-multiselect