2008-10-31 12 views
7

¿Cómo puedo detectar si un cuadro de entrada es actualmente un autocompletar jQuery UI? No parece ser un método nativo para esto, pero espero que no es algo tan sencillo como esto:Detección de autocompletar de jQuery UI

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

Eso condicional, sin embargo, parece volver siempre es cierto.

Respuesta

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

ACTUALIZACIÓN

El nombre de la clase en el widget de autocompletar jQuery UI es ahora 'ui-autocompletar-entrada' para que el código sería:

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

Es cierto porque una vez que haya incluido el autocompletado js, ​​cada objeto $() ahora tiene un método de autocompletar() definido (en caso de que quiera activar la autocompletar para esos elementos). Tu if() solo dice que esa función no es nula.

I, desafortunadamente no tengo un sistema donde pueda verificar esto (dejé la computadora portátil en casa hoy), pero creo que la función autocompletar agrega un nombre de clase CSS a los elementos que está usando. Puedes buscar eso.

3

Usted puede utilizar

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

.isFunction es parte de jQuery lib. (Citar: http://james.padolsey.com/jquery/....isFunction)

+1

Esto simplemente comprueba si 'autocompletar' existe como una función, lo que significa que el complemento de autocompletar se carga en la memoria. Pero eso no es lo que la pregunta está haciendo. –

9

También se puede encontrar el comportamiento de autocompletar unido a un elemento de entrada por línea de código siguiente:

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

Si el plug-in de interfaz de usuario de autocompletar jQuery ya está incluido en la página y lo que desea comprobar para ver si un elemento particular (entrada) se ha configurado con la función de autocompletar, se puede utilizar el método de la API oficial como se muestra a continuación:

if ($("#q").autocomplete("instance")) { 
    console.log("autocomplete already setup for #q"); 
} else { 
    console.log("NO autocomplete for #q"); 
} 

Más detalles pueden ser fo und at http://api.jqueryui.com/autocomplete/#method-instance

Cuestiones relacionadas