如何检测输入框当前是否是jQuery UI自动完成?似乎没有本地方法,但我希望有这样简单的事情:
if ($("#q").autocomplete)
{
//Do something
}
然而,有条件的似乎总是回归真实。
答案 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");
}
找到更多详情
答案 4 :(得分:1)
这是真的,因为一旦你包含了自动完成js,每个$()对象现在都定义了一个autocomplete()方法(如果你想激活这些元素的自动完成)。你的if()只是说该函数不是null。
我很遗憾没有一个我可以检查这个系统(今天离开笔记本电脑回家)的系统,但我相信自动完成功能会为它正在使用的元素添加一个css类名。你可以找那个。