检测jQuery UI自动完成

时间:2008-10-31 20:01:46

标签: jquery jquery-ui

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

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

然而,有条件的似乎总是回归真实。

5 个答案:

答案 0 :(得分:11)

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

<强>更新

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

if ($("#q").hasClass("ui-autocomplete-input")) {
    // do something
}

答案 1 :(得分:9)

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

if ($('Selector').data('autocomplete')) {
}

答案 2 :(得分:3)

您可以使用

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

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

答案 3 :(得分:2)

如果页面中已包含自动填充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

找到更多详情

答案 4 :(得分:1)

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

我很遗憾没有一个我可以检查这个系统(今天离开笔记本电脑回家)的系统,但我相信自动完成功能会为它正在使用的元素添加一个css类名。你可以找那个。