Combobox 如何禁用jQuery UI组合框?

Combobox 如何禁用jQuery UI组合框?,combobox,jquery-ui-autocomplete,Combobox,Jquery Ui Autocomplete,我正在尝试禁用我创建的jQuery UI组合框。我已经找过了,但还没有找到有效的 以下是一些: 我已经编程并尝试了我在以下网站找到的最佳答案: 。看起来它朝着正确的方向发展。我能够禁用他们的“盒子1”,但似乎无法使用我的。然而,我的combobox()在它的初始阶段稍晚一些,是jQuery11。但这可能与此无关。虽然从技术上讲,这并不能回答您的具体问题,但我强烈建议您花一点时间学习“选择”。它是一个JQuery插件,可以完成您所追求的大部分功能。最重要的是,学习JQuery插件总是一个好主意。还

我正在尝试禁用我创建的jQuery UI组合框。我已经找过了,但还没有找到有效的

以下是一些:

我已经编程并尝试了我在以下网站找到的最佳答案:


。看起来它朝着正确的方向发展。我能够禁用他们的“盒子1”,但似乎无法使用我的。然而,我的combobox()在它的初始阶段稍晚一些,是jQuery11。但这可能与此无关。

虽然从技术上讲,这并不能回答您的具体问题,但我强烈建议您花一点时间学习“选择”。它是一个JQuery插件,可以完成您所追求的大部分功能。最重要的是,学习JQuery插件总是一个好主意。还有很多其他的好方法。

看看你的小提琴中的来源,它是一个锚定标签上的点击方法,提供了所有薪酬等级的下拉列表。如果您可以将该组合框的源代码包含在您的组合框中,请在禁用控件时将.click()方法更改为返回false,而不是在同一个click()方法中运行其余代码。@谢谢您的回复。我相信click()方法的代码隐藏在jquery-ui.js代码的某个地方。有什么办法可以覆盖它或改变它吗?谢谢。如果您查看一下您的JSFIDLE,您将看到$()代码创建了一个锚。该锚定是下拉列表右侧的按钮。要打开下拉列表,JQuery使用.mousedown和.click方法对锚进行编码。.mousedown方法确定控件是否已打开。.click方法检查wasopen变量以决定是否显示或隐藏下拉选项列表。因此,您要做的是在禁用控件时停止.click()方法的激活,然后在启用控件时重新启用该方法。我能想到的最好方法是首先删除现有的.click方法。您可以在这里了解:接下来您需要编写自己的。单击方法,将其附加到同一个锚点,并使其决定是否基于WASWOPEN变量打开,以及是否禁用该控件。顺便说一句,我已经完成了大脑损伤。请查看.selected下拉列表。它好多了,而且没有这些胡说八道。
...
$(function() {
    $( "#userInfo" ).combobox();
    $( ".custom-combobox-input").attr("placeholder", "(Pay Band GS 1-15/rank)");
    $( "#userInfo input" ).attr('disabled', true);
    $( "#userInfo button" ).attr('disabled', true);
});
...
$("#box3").combobox(); // init autocomplete combobox 3

// set initial state of generated combobox 2
$("#test2 input").attr('disabled',true);
$("#test2 button").attr('disabled',true);  

// set initial state of generated combobox 3
$("#test3 input").attr('disabled',true);
$("#test3 button").attr('disabled',true);