【发布时间】:2013-06-08 06:47:50
【问题描述】:
我正在使用 ASP.NET MVC 4 和 jQuery 来实现这一点。
我要做的是根据复选框是否被选中来禁用或启用下拉列表。
我可以让它工作,但是我似乎无法在页面加载时禁用下拉列表。语句被执行,但元素没有被禁用。
我认为问题是,在填充下拉列表(来自视图模型)之前执行检查,并且数据以某种方式覆盖?
这是我的 HTML:
<p>
@Html.CheckBoxFor(model => model.RoomRequired, new { id= "room-required" })
<label>Room Required</label>
</p>
<p>
<label>Room Options</label>
@Html.DropDownListFor(model => model.OptionId, new SelectList(Model.RoomOptions, "Id", "Name"), "Select option", new { id="option-select })
</p>
并修复了 Javascript:
$(document).ready(function () {
$('#room-required').change(function () {
$('#option-select').prop('disabled', $(this).is(':checked'));
});
$('#room-required').trigger('change');
});
【问题讨论】:
-
>> 我认为问题是,在数据(来自视图模型)加载到页面之前执行了检查,并且数据以某种方式覆盖了属性?这不是一个原因,数据从服务器端的视图模型加载,但 javascript 在客户端工作。
标签: jquery asp.net asp.net-mvc asp.net-mvc-4 razor