我尝试将readonly属性设置为复选框,但它允许用户选中/取消选中该字段。
后来我试图将禁用用户的禁用设置为禁止/取消选中。
但是当我尝试提交表单时,带有disbaled值的复选框没有传递给MVC控制器。
我试图设置隐藏值,并尝试在更改时设置值,但无法将值传递给控制器。
这是我的代码:
def myfunc(requests,param1):
----
--- do something
----
JQuery代码:
<div style="width:200px">@Html.CheckBoxFor(m => m.In, new { id = "cbIn", style = "vertical-align:middle;", data_bind = "checked:In,disable:useSettings" })</div>
@Html.HiddenFor(m=>m.In,new { id = "hiddenIn" })
即使在表单帖子中禁用了复选框值,我该如何发送复选框值。
答案 0 :(得分:2)
您已经隐藏了输入:
@Html.HiddenFor(m=>m.In,new { id = "hiddenIn" })
那应该传递禁用复选框的值。
没有隐藏输入的解决方案,您可以在从表单中获取元素值之前删除disabled
属性:
$("input:checkbox").prop('disabled', false);
//Then get the data
var serializedForm = $("input,select").serialize();
希望这有帮助。
答案 1 :(得分:1)
您可以这样使用,因此使用无法更改复选框的状态,只需添加onclick="return false;"
<input type="checkbox" checked onclick="return false;" onkeydown="return false;"/>
在你的剃刀语法中
@Html.CheckBoxFor(m => m.In, new { id = "cbIn", style = "vertical-align:middle;", data_bind = "checked:In,disable:useSettings", onclick="return false;"})