Detectando o AUTO da interface do usuário do jQuery
Pergunta
Como posso detectar se uma caixa de entrada é atualmente uma concessão automática de interface do usuário do jQuery? Não parece haver um método nativo para isso, mas espero que haja algo simples como este:
if ($("#q").autocomplete)
{
//Do something
}
Esse condicional, no entanto, parece sempre retornar verdadeiro.
Solução
if ($("#q").hasClass("ac_input")) {
// do something
}
ATUALIZAR
O nome da classe no widget JQuery UI AutoComplete agora é 'UI-Autocomplete-Input', para que o código seja:
if ($("#q").hasClass("ui-autocomplete-input")) {
// do something
}
Outras dicas
Você também pode encontrar o comportamento de preenchimento automático anexado a um elemento de entrada seguindo a linha de código:
if ($('Selector').data('autocomplete')) {
}
Você pode usar
if( $.isFunction( $.fn.autocomplete ) ){ }
.isfunção faz parte do jQuery lib. (citar: http://james.padolsey.com/jquery/ ...)
Se o plug -in Autocomplete JQuery UI já estiver incluído para a página e você só quiser verificar se um determinado elemento (de entrada) foi configurado com a função de preenchimento automático, você pode usar o Método oficial da API como mostrado abaixo:
if ($("#q").autocomplete("instance")) {
console.log("autocomplete already setup for #q");
} else {
console.log("NO autocomplete for #q");
}
Mais detalhes podem ser encontrados em http://api.jqueryui.com/autocomplete/#method-instance
É verdade porque depois de incluir o JS de preenchimento automático, cada objeto $ () agora possui um método AutoComplete () definido (caso você queira ativar o preenchimento automático para esses elementos). Seu if () está apenas dizendo que essa função não é nula.
Infelizmente, não tenho um sistema em que posso verificar isso (deixei a casa do laptop hoje), mas acredito que o AutoComplete adiciona um nome de classe CSS aos elementos que está usando. Você pode procurar por isso.