javascript - 如何在下拉/选择列表中添加复选框选中的项目
问题描述
我正在 ASP.Net Core MVC 中创建客户资料页面。在客户资料中,我给出了可用货币列表(在复选框中),我们可以从中选择该客户可以与我们交易的货币。
我想从选中的复选框中设置一种默认货币,为此我创建了下拉列表,并且我想用所有选中的货币填充下拉列表,以便从此下拉列表中选择一种默认货币。
有人可以根据选定的复选框提供 Javascript 来填充下拉列表吗?
@for (int j = 0; j < Model.Currency.Count(); j++)
{
<tr>
<td>
@Html.CheckBoxFor(m => m.Currency[j].Checked)
</td>
<td>
@Html.DisplayFor(m => m.Currency[j].Name)
@Html.HiddenFor(m => m.Currency[j].Id)
@Html.HiddenFor(m => m.Currency[j].Name)
</td>
</tr>
}
</table>
<div class="col-5">
<select id="Default_Currency"
asp-for="DefaultCurrency"
asp-items=""
class="form-control">
</select>
</div>
解决方案
根据您的描述,我建议您可以尝试使用 jquery 添加选择选项。
更多细节,您可以参考以下代码:
<table>
@for (int j = 0; j < Model.Currency.Count(); j++)
{
<tr>
<td>
@Html.CheckBoxFor(m => m.Currency[j].Checked, new { @class = "ckbox" })
</td>
<td>
@Html.DisplayFor(m => m.Currency[j].Name)
@Html.HiddenFor(m => m.Currency[j].Id)
@Html.HiddenFor(m => m.Currency[j].Name)
</td>
</tr>
}
</table>
<div class="col-5">
<select id="Default_Currency"
class="form-control">
</select>
</div>
@section scripts{
<script type="text/javascript">
$(
function () {
$(".ckbox").each(function () {
var selectedtext = ($(this).parent().next().text());
if ($(this).is(':checked')) {
$("#Default_Currency").append('<option value="' + selectedtext + '">' + selectedtext + '</option>');
} else {
$('option[value*="' + selectedtext + '"]').remove();
}
});
});
$(".ckbox").change(function (e) {
var selectedtext = ($(this).parent().next().text());
if ($(this).is(':checked')) {
$("#Default_Currency").append('<option value="' + selectedtext + '">' + selectedtext + '</option>');
} else {
$('option[value*="' + selectedtext + '"]').remove();
}
});
</script>
}
结果:
推荐阅读
- python - 在python中读取由空格分隔的数字列表的最有效方法是什么?
- java - Java,selenium:单击后如何检查元素中的 src 更改并使用 if 语句进行验证
- r - 如何合并 R 中的列表并将某些列添加到有重复项的地方?
- php - Woocommerce - 如果购物车中有 4 件来自同一类别、具有相同变化的商品,则设置新价格
- wordpress - WordPress 自定义菜单用法
- shell - 使用shell脚本将多行合并为一行
- c++ - 使用具有 64 位整数作为 StorageIndex 的 SparseMatrix 的 Eigen Pardiso
- r - 忽略向量和中的 NA
- linux-kernel - Linux SPI 写入然后读取事务,无延迟
- powerbi - 创建一个度量以获取两个单元格均为空白的行数