我有这两个相关的复选框:
<div class="col-md-12">
<div class="col-md-4">
@Html.Label("Issue", new { @class = "control-label" })
</div>
<div class="col-md-3 text-align-center padding-top-7">
@Html.CheckBoxFor(model => model.IssueDisplay)
</div>
<div class="col-md-3 text-align-center padding-top-7">
@Html.CheckBoxFor(model => model.IssueRequired, new { @onclick = "SetDisplayCheckbox(this,'IssueDisplay');" })
</div>
</div>
我的 SetDisplayCheckbox()
javascript 如下所示:
SetDisplayCheckbox = function (reqCb, targetCb) {
debugger;
var displayCb;
if (targetCb == null || targetCb == undefined) {
displayCb = $(reqCb).closest('.displayRequired').find('.requireMe')[0];
}
else
{
displayCb = $(document.getElementById(targetCb))[0];
}
if (reqCb.checked == true) {
displayCb.checked = true;
displayCb.disabled = true;
displayCb.value = true; // I've tried with and without this.
} else {
displayCb.disabled = false;
}
};
JavaScript 运行良好,选中了 IssueDisplay
复选框,但当我提交表单时,IssueDisplay
值返回为 false。
当选中为 true 时,为什么复选框没有设置为 true?
最佳答案
表单中的禁用字段不会发布到服务器,因此您的值始终为 false。尝试删除此行
displayCb.disabled = true;
如果您仍然需要禁用该复选框,您可以在表单提交事件之前启用它。
关于javascript - 使用 javascript 管理 MVC 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444452/