如何禁用jquery ui combobox?

时间:2011-10-05 19:15:24

标签: jquery-ui

我使用从this页面获取的标准代码并尝试禁用组合框:

$( "#cbCountry" ).combobox({ disabled: true });

但它仍然启用。这有什么不对?

3 个答案:

答案 0 :(得分:15)

轻松修改组合框以使用:

$("#cbCountry").combobox('disable');
$("#cbCountry").combobox('enable');

在你的combobox.js文件中添加:

  • _create:function()中添加局部变量“a”(在var input之后,a ...)。
  • input = $("<input>")更改为input = this.input = $("<input>")
  • a = $("<a>")更改为a = this.a = $("<a>")
  • destroy之后插入:

    disable: function() {
        this.input.prop('disabled',true);
        this.input.autocomplete("disable");
        this.a.button("disable");
    },
    enable: function() {
        this.input.prop('disabled',false);
        this.input.autocomplete("enable");
        this.a.button("enable");
    }
    
  • 答案 1 :(得分:6)

    该代码用于初始化禁用的组合框。如果要禁用现有的组合框,请使用:

    $("#cbCountry").combobox("option", "disabled", true);
    

    <强>更新

    Combobox是一个单独的jQuery UI小部件,它似乎没有实现这些选项。我能够通过在窗口小部件中找到文本字段和按钮来禁用它,并禁用它们:

    $("#cbCountry").closest(".ui-widget").find("input, button" ).prop("disabled", true)
    

    答案 2 :(得分:5)

    我必须在我的网络应用程序中单击按钮时禁用组合框。感谢在此发表评论的人们。我能够想出如何在需要时禁用和启用组合框。代码如下。

    以下代码用于禁用组合框

    $("#MyComboboxId").parent().find("input.ui-autocomplete-input").autocomplete("option", "disabled", true).prop("disabled",true);
    $("#MyComboboxId").parent().find("a.ui-button").button("disable");
    

    上面的JavaScript代码在上面的帖子中解释了ID和其余部分的HTML元素。

    以下代码用于启用组合框

    $("#MyComboboxId").parent().find("input.ui-autocomplete-input").autocomplete("option", "disabled", false).prop("disabled",false);
    $("#MyComboboxId").parent().find("a.ui-button").button("enable");