[英]Checkbox to enable or disable a list box
我在创建的 ASP.NET MVC 页面上有一个复选框,如下所示:
<div>
@Html.CheckBoxFor(m => m.allUsers, new { Name = "allUsersCheck" })
@Html.LabelFor(m => m.allUsers)
</div>
我还有一个创建的列表框:
@Html.ListBoxFor(x => x.selectedUsers, Model.ListofUsers, new { style = "width:200px", size = 10, Id = "lbUsers" })
我有以下脚本(我在选中复选框时编写了该脚本以禁用列表框。我不明白为什么它不起作用。有人可以指出我的代码有什么问题吗?
此脚本在相同的.cshtml 页面中,而不是在 .js 文件中:
<script >
$(function () {
$('#allUsersCheck').click(function () {
$('#lbUsers').prop("disabled", $(this).prop('checked'));
});
});
</script>
因为您使用的是“#allUsersCheck”的 ID 选择器。 与您的列表框(?)不同,该复选框没有 Id 属性。
@Html.CheckBoxFor(m => m.allUsers, new { Name = "allUsersCheck" })
使用 Id 属性尝试以下操作:
@Html.CheckBoxFor(m => m.allUsers, new { Name = "allUsersCheck", Id = "allUsersCheck" })
好的。 我花了一段时间才弄清楚我需要做的事情的全部清单。
这就是我为最终让它工作所做的一切。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript">
$(function () {
$("#allUsersCheck").change(function () {
$("#lbUsers").find("option").prop("selected", this.checked)
});
});
</script>
在上面您将看到 allUsersCheck 是复选框元素的 id,而 lbUsers 是 ListBoxFor 元素的 id。
<b>Users </b><br />
@Html.ListBoxFor(x => x.selectedUsers, Model.ListofUsers, new { style = "width:200px", size = 10, id = "lbUsers" })
<br />
<div>
@Html.CheckBoxFor(m => m.allUsers, new { id = "allUsersCheck" })
@Html.LabelFor(m => m.allUsers)
</div>
我还在 model 中使用了 bool 标志。 allUsers 是标志。 controller 代码中的其他内容需要 bool 标志,而不是出于 UI 原因。
我不确定这是否是最好的方法。 但这是我可以让它工作的方法。
感谢在这个过程中帮助我完成这项工作的人。 显然不是没有他们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.