【问题标题】:disable textboxfor using a checkboxfor razor mvc and jquery使用 razor mvc 和 jquery 的复选框禁用文本框
【发布时间】:2018-05-21 18:34:46
【问题描述】:

我正在尝试使用@Html.CheckBoxFor 在剃须刀中禁用/启用@Html.TextBoxFor

我以这种方式定义了我的 CheckBoxFor:

@Html.CheckBoxFor(m => m.ResYearChecked, new { Name = "ResYearChecked", id = "ResYearChecked" })

@Html.TextBoxFor(m => m.SearchResYear, new { Name = "SearchResYear", id = "SearchResYear" })

我正在尝试调用脚本:

<script>
    $('ResYearChecked').change(function () {
        $("SearchResYear").prop("disabled", !$(this).is(':checked'));
    });
</script>

是否需要将onclick 属性添加到CheckBoxFor

【问题讨论】:

    标签: razor model-view-controller checkbox textbox


    【解决方案1】:

    我能够找出解决方案。我为@Html.TextBoxFor 启用了属性readonly。然后,在检查了 @Html.CheckBoxFor 后,我删除了 readonly 属性。

    这是我的@Html.CheckBoxFor@Html.TextBoxFor 的代码

    @Html.CheckBoxFor(m => m.ResYearChecked, new { Name = "ResYearChecked", id = "ResYearChecked" })
    @Html.TextBoxFor(m => m.SearchResYear, new { Name = "SearchResYear", id = "SearchResYear", @readonly = "readonly" })
    

    这里是 JavaScript

    <script>
        $('#ResYearChecked').change(function () {
            if ($(this).is(":checked")) {
                $("#SearchResYear").removeAttr("readonly");
                $("#SearchResYear").focus();
            } else {
                $("#SearchResYear").attr("readonly", "readonly");
            }
        });
    </script>
    

    【讨论】:

    • 删除您的new { Name = "...", id = "...." } - 这些方法已经添加了正确的nameid 属性(并且在任何情况下您都不应尝试更改name 属性)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多