javascript - 在 EditorFor 字段上使用 Javascript?

标签 javascript asp.net-mvc asp.net-mvc-4

在 MVC4 中,我有一个 EditorFor 字段,它代表一个 bool 值并呈现为一个复选框,如果勾选了该复选框,我想让其他 EditorFor 字段更改为不可编辑。这在纯 html 中很简单,但使用 Razor 语法我不确定如何执行此操作。

<div class="editor-field">
        @Html.EditorFor(model => model.Draw)
        @Html.ValidationMessageFor(model => model.Draw)
    </div>

<script type="text/javascript">
function validate() {
    if (document.getElementById('@Html.EditorFor(model => model.Draw)').checked) {
        alert("checked")
    } else {
        alert("You didn't check it! Let me check it for you.")
    }
}

试图用那个脚本测试它,但因为我不知道编辑器的 ID,所以我不确定该怎么做。

最佳答案

如果您使用 CheckBoxFor 而不是 EditorFor(它是一个通用帮助程序),您可以通过方法重载轻松添加 HTML 属性。添加一个 ID 允许您从 JavaScript 访问它。

<div class="editor-field">
    @Html.CheckBoxFor(model => model.Draw, new { ID = "cbxDraw" })
    @Html.ValidationMessageFor(model => model.Draw)
</div>

<script type="text/javascript">
$(document).ready(function() {
    $('#cbxDraw').on('change', function() {
        var $cbx = $(this),
            isChecked = $cbx.is(':checked');

        $cbx.closest('.editor-field')
            .siblings()
            .find(':input')
                .prop('disabled', isChecked);
    });
});
</script>

(注:本例使用jQuery)

关于javascript - 在 EditorFor 字段上使用 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14626732/

相关文章:

javascript - iOS iPad 平板电脑无法正确呈现视口(viewport)

javascript - 如何阻止 child 继承 parent 的不透明度

javascript - 在 JavaScript 中使用全局变量

c# - 输出缓存不起作用

c# - 开始使用 ASP.NET

javascript - 全局打开/关闭 CSS

javascript - Tempdata 未显示在 View ASP.NET C# 中的图像 src 中

asp.net-mvc - addTagHelper Html.GetEnumSelectList 不工作

asp.net-mvc - 如何使用ASP.NET MVC ApiController获取GET参数

asp.net-mvc-3 - Webgrid 中的下拉列表