我正在开发一个 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/