автозаполнение - показать весь список - PullRequest
5 голосов
/ 22 февраля 2012

У меня есть этот код:

var myList = [ "Avellino", "Enna", "Frosinone" ];

myInput.autocomplete({
    source: function(request, response) {            
        var data = $.grep(myList, function(value) {
            return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
        });            

        response(data);
    },        
    appendTo: "#myDiv"
});

, и я бы хотел, чтобы при нажатии на поле ввода показывался список всех элементов (с тем же полем автозаполнения для значения выбора), равным myList.

Полагаю, мне нужен обработчик третьей части, например:

myInput.focus(function () {

});

, но я не знаю, как вести диалог с автозаполнением.Есть идеи / решения?

Ответы [ 2 ]

14 голосов
/ 22 февраля 2012

@ jasonlfunk находится на полпути ... Вы должны позвонить search на виджет автозаполнения при focus, чтобы заставить это работать:

var myList = [ "Avellino", "Enna", "Frosinone" ];

$('#myInput').autocomplete({
    minLength: 0,
    source: function(request, response) {            
        var data = $.grep(myList, function(value) {
            return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
        });            

        response(data);
    }
}).focus(function () {
    $(this).autocomplete("search", "");
});

Пример: http://jsfiddle.net/BRDBd/

4 голосов
/ 22 февраля 2012

Посмотрите на параметр minLength для плагина автозаполнения.Установка его в ноль должна делать то, что вы хотите.

var myList = [ "Avellino", "Enna", "Frosinone" ];

myInput.autocomplete({
    minLength: 0,
    source: function(request, response) {            
        var data = $.grep(myList, function(value) {
            return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
        });            

        response(data);
    },        
    appendTo: "#myDiv"
}).focus(function(){
    $(this).autocomplete("search",$(this).val());
});​;
...