【问题标题】:DropdownlistFor not disabling when used with chosen jquery pluginDropdownlistFor 在与选择的 jquery 插件一起使用时不禁用
【发布时间】:2014-01-08 12:49:23
【问题描述】:

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

【问题讨论】:

  • 我试过 $('#ID').attr("disabled", true);但仍然无法正常工作

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


【解决方案1】:

基于this,Chosen jQuery 插件仅在您最初构建时检查下拉列表中的disabled 状态。即当你打电话给.chosen();

要解决这个问题,您必须触发 chosen:updated 事件,以便插件可以根据对底层 Select 元素所做的更改进行自我修改。

这是来自Documentation page 的引用:

选择:更新

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

这里是示例 jQuery 代码:

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

此代码将禁用底层选择,然后强制选择插件刷新。

【讨论】:

  • @Nunners,即使我错过了。相信我用选择的 jquery 插件做了很多工作。我感觉很愚蠢。
  • 加油!!这就是我们有 StackOverflow 的原因! :)
【解决方案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);

【讨论】:

  • 对不起!我尝试了 true ,它不起作用所以我尝试了 false !我已经纠正了我的问题:P
  • 试试这个:$('#ID').attr("disabled", "disabled");
  • @FurquanKhan 我认为您似乎没有抓住重点,并不是 Dropdown 对象本身没有被禁用,而是 Chosen jQuery Plugin 没有被禁用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多