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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top