我在我的下拉列表中使用了选择的jquery插件。我需要在某些条件下禁用下拉列表。但下拉列表不会被禁用。
这是我的jquery。
if (($('#ID').val() != "") && ($('#ID').val() != -9999999)) {
$('#ID').prop("disabled", true);
}
我的下拉列表
@Html.DropDownListFor(model => model.SelectedId, new SelectList(Model.Department, "DepartmentId", "DepartmentCode"), "-- Select Department--", new { @class = "chosen-select", id = "ID" })
答案 0 :(得分:2)
您正在错误地设置属性。
$('#ID').prop("disabled", false) //this will set the disabled attribute to false which means enable is true
试试这个:
$('#ID').prop("disabled", true);
或者如果prop函数不适合你,那么你可以使用attr函数,即:
$('#ID').attr("disabled", true);
答案 1 :(得分:2)
基于this,选择的jQuery插件仅在您最初构建时检查disabled
状态的下拉列表。即当你致电.chosen();
时。
要解决此问题,您必须触发chosen:updated
事件,以便插件可以根据对基础Select元素所做的更改来修改自身。
选择:已更新
应触发此事件 每当Chosen的底层选择元素发生变化时(例如变化) 在选定的选项中)。
以下是jQuery代码示例:
$('#ID').prop("disabled", true);
$('#ID').trigger('chosen:updated');
此代码将禁用基础选择,然后强制刷新Chosen插件。