复选框在mvc3中不起作用

时间:2013-06-12 19:43:39

标签: asp.net-mvc asp.net-mvc-3

我的视图中有动态复选框。但它不能很好地工作,总是得到检查 这是我的代码:

<input type="checkbox" onclick = "InActiveUser('@item.UserId')" id = "@item.UserId"   checked="@(item.IsActive == false ? false : true)" />

请帮助谢谢。

5 个答案:

答案 0 :(得分:2)

Checked属性不会将truefalse作为值。该属性的唯一存在使其得以检查。如果希望元素保持未选中状态,则必须删除此属性。

了解更多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)

方法 - 1

@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"/> 
}

方法 - 2

您可以使用以下代码。

$("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;
}

方法 - 3

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')"/>
  }
}