asp.net-mvc - 如果选择了 DropDownList 的定义选项,则禁用 CheckBox

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

我正在开发一个 asp.net mvc3 应用程序。我有一个 @Html.DropDownList("abcd") 和一个 @Html.CheckBox("efgh")

我想要什么:

如果选择 DropDownList 的定义选项,则应禁用复选框。

我想到了某事。像这样:

@if "defined option" is chosen of DropDownList("abcd") {
    disable checkbox("efgh")

我已经找到了如何禁用复选框:

@Html.CheckBox("efgh", new { disabled = "disabled" })

如你所见,我使用的是 Razor

提前致谢!!你们在这里做得很好:)

最佳答案

I think of sth. like that:

不,您应该考虑 JavaScript 函数,因为下拉列表的更改发生在客户端,而不是服务器。因此,基本上您需要订阅下拉列表的 onchange 事件,读取所选值并根据该值切换复选框禁用状态。

例如,如果您使用 jQuery,这可能看起来像这样:

$(function() {
    $('#abcd').change(function() {
        var disabled = this.value == 'defined option';
        $('#efgh').prop('disabled', disabled);
    });
});

在我的示例中,abcd 显然是下拉列表的 ID,efgh 是复选框的 ID。因此,请确保它们正确并符合您的实际值。

哦,顺便说一句,我不会忘记,如果禁用 HTML 输入元素,则在提交表单时其值将永远不会发送到服务器。如果您仍然希望将值提交到服务器,而输入无法修改,您可能希望将其设置为只读,而不是禁用它。

var readonly = this.value == 'defined option';
$('#efgh').prop('readonly', readonly);

关于asp.net-mvc - 如果选择了 DropDownList 的定义选项,则禁用 CheckBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670800/

相关文章:

c# - ActionLink 在 URL 中包含当前 {id}

c# - 如何将对象发送到 Telerik MVC 网格 Ajax Select() Controller 方法

c# - Automapper - 忽略有条件的映射

c# - 使用循环在 HTML(MVC) 中显示列表字符串

c# - 将 XML(以格式化方式)显示到 Razor Textarea

javascript - 判断jquery当前触发的是哪个事件

asp.net-mvc - 如何在 MVC5 应用程序中使用 Asp.Identity 从用户的谷歌帐户中获取名字 + 姓氏

asp.net-mvc-3 - ASP.NET MVC3 CSS 框架

c# - ASP.NET MVC3 中的 Razor 和接口(interface)继承 : why can't this property be found?

html - .woff 和 .tff 的链接在缩小后不起作用