我的视图中有动态复选框。但它不能很好地工作,总是得到检查 这是我的代码:
<input type="checkbox" onclick = "InActiveUser('@item.UserId')" id = "@item.UserId" checked="@(item.IsActive == false ? false : true)" />
请帮助谢谢。
答案 0 :(得分:2)
Checked
属性不会将true
或false
作为值。该属性的唯一存在使其得以检查。如果希望元素保持未选中状态,则必须删除此属性。
了解更多in this answer
答案 1 :(得分:0)
您必须按照以下方式执行此操作:
<input type="checkbox" onclick = "InActiveUser('@item.UserId')"
id = "@item.UserId" checked="@item.IsActive" />
答案 2 :(得分:0)
正如Patryk所说 - 你需要改变添加checked属性的方式。像这样:
<input type="checkbox" onclick = "InActiveUser('@item.UserId')" id = "@item.UserId" @(item.IsActive ? "checked" : "") />
试试。
答案 3 :(得分:0)
@if(item.IsActive)
{
<input type="checkbox" onclick = "InActiveUser('@item.UserId')"
id = "@item.UserId" checked="checked" />
}
else
{
<input type="checkbox" onclick = "InActiveUser('@item.UserId')"
id = "@item.UserId"/>
}
您可以使用以下代码。
$("input[type='checkbox']").prop('checked', true); // Checked
$("input[type='checkbox']").prop('checked', false); // Un-Checked
如果注意上面的代码,prop函数用于设置属性值。您可以使用JQuery - 1.6版本。现在根据您的情况,您可以在JavaScript部分编写Razor代码,如下所示。
<script type="text/javascript">
$(document).ready(function () { //Some Razor code in JQuery
var status = "@status" == "True" ? true : false;
$("input[type='checkbox']").prop('checked', status);
});
</script>
View.cshtml中的服务器端示例代码
@{
var status = false;
}
JQuery的
<script type="text/javascript">
$(document).ready(function () { //Some Razor code in JQuery
var status = "@status" == "True" ? true : false;
if (!status)
$("input[type='checkbox']").removeAttr('checked');
else
$("input[type='checkbox']").attr('checked', true);
});
</script>
cshtml中的服务器端代码
@{
var status = true;
}
如果您注意上面的JQuery代码,我将使用removeAttr
删除checked属性,以防状态值为false,并在status为true时使用attr
函数将其设置为true。
答案 4 :(得分:0)
尝试这样的事情:
@{
if (ViewBag.IsActive)
{
<input type="checkbox" id="@item.UserId" checked onclick = "InActiveUser('@item.UserId')"/>
}
else
{
<input type="checkbox" id="@item.UserId" onclick = "InActiveUser('@item.UserId')"/>
}
}