Dropdownlist当与选择的jquery插件一起使用时不禁用

时间:2014-01-08 12:49:24

标签: jquery html5 asp.net-mvc-4 jquery-chosen

我在我的下拉列表中使用了选择的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" })

2 个答案:

答案 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元素所做的更改来修改自身。

以下是Documentation page

的引用
  

选择:已更新

     

应触发此事件   每当Chosen的底层选择元素发生变化时(例如变化)   在选定的选项中)。

以下是jQuery代码示例:

$('#ID').prop("disabled", true);
$('#ID').trigger('chosen:updated');

此代码将禁用基础选择,然后强制刷新Chosen插件。