Run*_*ors 2 html checkbox asp.net-mvc jquery readonly
我们有几个 MVC 复选框,例如:
@Html.CheckBoxFor(model => model.hasData, …)
Run Code Online (Sandbox Code Playgroud)
我们有条件客户端代码,需要将 div 中的所有控件设置为只读(包括这些复选框):
if (someCondition) {
$('#' + divIdToDisable + ' input').attr('readonly', 'true');
}
Run Code Online (Sandbox Code Playgroud)
我们了解到 readonly 在复选框上不能正常工作(见下文)。
我尝试了以下操作,但这会导致在“保存”期间没有数据回传(另请参见下文):
$('#' + divIdToDisable + ' input').attr('disabled', 'true');
Run Code Online (Sandbox Code Playgroud)
这似乎是一个常见问题,但是在我所有的研究中,我还没有找到一个好的客户端解决方案。
复选框上的只读并不总是适用于所有浏览器:
在 MVC 中使用 'disabled' 会导致没有值被回发:
如果禁用,Html.CheckBox 返回 false,即使已选择
http://davecallan.com/posting-disabled-checkboxes-mvc-razor-views/
可以在剃刀代码中实现条件“禁用” :
Asp .net mvc 3 CheckBoxFor 方法输出隐藏字段,当复选框被选中为 true 时,该隐藏字段值为 false
MVC 3:使用 HtmlHelpers 有条件地添加禁用属性
然而,这些不是客户端解决方案。
如果您希望将禁用复选框中的数据发送到服务器,只需将它们的状态设置为发布enabled之前。因此,在 jQuery 中,您可以执行以下操作:
$("form").on("submit", function(e)
{
$("input:checkbox").prop("disabled", false);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5407 次 |
| 最近记录: |