如何在MVC Razor中动态禁用TextBox?

时间:2013-02-04 09:05:14

标签: asp.net-mvc razor

我想动态禁用/启用文本框,然后单击复选框。我该怎么做?我正在使用这个:

@{
    object addInput = (Model.AddInput) ? null : new { disabled = "disabled" };

 }

@Html.CheckBoxFor(model=> model.AddInput)

@Html.TextBoxFor(model => model.Input.Name, addInput)

但它只适用于开始。单击该复选框不会改变任何内容。如何做一些绑定来自动更改禁用状态?

3 个答案:

答案 0 :(得分:8)

这需要在javascript中完成。

@{
    object addInput = (Model.AddInput) ? null : new { disabled = "disabled" };

 }

@Html.CheckBoxFor(model=> model.AddInput)

@Html.TextBoxFor(model => model.Input.Name)


<script> 
    $('#AddInput').click(function() {
        var $this = $(this);

        if ($this.is(':checked')) {
            $('#Name').removeAttr("disabled"); 
        } else {
            $('#Name').attr("disabled", "disabled")
        }
    });
</script>

答案 1 :(得分:1)

如果您出于某种原因想要启用它,您还可以使用以下内容:

      $('#Name').attr("disabled", false);

答案 2 :(得分:0)

单击复选框添加jquery操作并正确设置状态。