8

如何检测输入框当前是否为 jQuery UI 自动完成?似乎没有本机方法,但我希望有这样简单的东西:

if ($("#q").autocomplete)
{
  //Do something
}

然而,这个条件似乎总是返回真。

4

5 回答 5

13
if ($("#q").hasClass("ac_input")) {
    // do something
}

更新

JQuery UI 自动完成小部件中的类名现在是“ui-autocomplete-input”,因此代码将是:

if ($("#q").hasClass("ui-autocomplete-input")) {
    // do something
}
于 2008-10-31T22:16:11.103 回答
10

您还可以通过以下代码行找到附加到输入元素的自动完成行为:

if ($('Selector').data('autocomplete')) {
}
于 2011-06-16T10:15:44.243 回答
5

如果页面已经包含了自动完成 jquery UI 插件,并且您只是想查看是否已为特定(输入)元素设置了自动完成功能,则可以使用官方 API 方法,如下所示:

if ($("#q").autocomplete("instance")) {
    console.log("autocomplete already setup for #q");
} else {
    console.log("NO autocomplete for #q");
}

更多细节可以在http://api.jqueryui.com/autocomplete/#method-instance

于 2017-09-06T06:54:26.843 回答
3

您可以使用

if( $.isFunction( $.fn.autocomplete ) ){ }

.isFunction 是 jQuery 库的一部分。(引用:http: //james.padolsey.com/jquery/....isFunction

于 2010-04-26T13:00:15.907 回答
1

这是真的,因为一旦你包含了自动完成 js,每个 $() 对象现在都定义了一个 autocomplete() 方法(如果你想为这些元素激活自动完成)。您的 if() 只是说该函数不为空。

不幸的是,我没有一个可以检查这个的系统(今天把笔记本电脑留在家中),但我相信自动完成会为其使用的元素添加一个 css 类名称。你可以去找那个。

于 2008-10-31T20:07:33.470 回答