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

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

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

有帮助吗?

解决方案

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

<强>更新

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

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

其他提示

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

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

您可以使用

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

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

如果页面中已包含自动填充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/ #方法实例

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top