3

У меня есть этот код:автозаполнения - показать весь список

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() { 

}); 

, но я не знаю, как dialogate с автозаполнения. Любые идеи/решения?

ответ

13

@jasonlfunk находится на полпути there-- Вы должны вызвать 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/

+0

Он отлично работает! Спасибо! – markzzz

+0

На самом деле, мое решение лучше, потому что оно обрабатывает случай, когда вы вводите что-то, нажмите прочь, а затем снова сфокусируйте элемент ... Но это не конкурс. – jasonlfunk

4

Ознакомьтесь с опцией 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()); 
});​; 
+0

Эмм, не оно не Работа! http://jsfiddle.net/Ek8nS/, если я нажимаю на вход, я не вижу список. – markzzz

+0

Вы правы! Сожалею. Я обновил свой ответ. Теперь это работает. :) – jasonlfunk

+0

Отличный ответ, Спасибо, чувак :) –