Respuesta

21

necesita disparar el evento search manualmente y establecer la opción minLength en el widget a cero:

$("input").autocomplete({ 
    minLength: 0, 
    /* other options */ 
}).on("focus", function() { 
    $(this).autocomplete("search", ""); 
}); 

Ejemplo de trabajo:http://jsfiddle.net/9JmVu/

+1

no pude conseguir que esto funcione en la versión que estamos utilizando, sin embargo, en sustitución de "on" con: .focus (function() {$ (this) .autocomplete ("buscar", "")}); funcionó muy bien. –

+0

Puede estar utilizando una versión anterior de jQuery. –

+0

¿Es esto posible sin llamar al evento 'search'? –

1

Creo que lo tengo en realidad. Si establece minLength a 0, y luego activa una búsqueda de "", se abre el menú.

 $(inputSelector).autocomplete(
       { 
        source: this.validConstructCodes, 
        minLength: 0, 
        autoFocus: true, 
        autoSelect: true 
       }); 
     $(inputSelector).focus(function(event) { 
     $(this).autocomplete("search" , ""); 
     }); 
1

Según lo explicado por Andrew, debe desencadenar el evento.

Pero una vez que obtenga el resultado de una solicitud de Ajax, es mejor volver a mostrar los resultados en lugar de volver a preguntar al servidor. El valor minLength es independiente, podría ser 2 como se recomienda en las solicitudes del servidor.

$("input").autocomplete({ 
    minLength: 2, 
    /* your options */ 
}).on("focus", function() { 
    /* the element with the search results */ 
    var uid = $("#ui-id-"+$(this).autocomplete("instance").uuid); 

    if(uid.html().length == 0) { 
     /* same as $(this).autocomplete("search", this.value); */ 
     $(this).keydown(); 
    } 
    else { 
     uid.show(); 
    } 
}); 
Cuestiones relacionadas