2016-03-04 2 views
0

Я использую автозаполнение jQuery UI на своем веб-сайте. Мои проблемы:jQuery Autocomplete: выпадающее меню не отображается после первого ввода

  • В Chrome и Firefox: Когда пользователь быстро вводит термин в четыре буквы после загрузки сайта и прекращает печатать, раскрывающаяся не показывают сразу. Только после ввода другой буквы, выпадающий затем показывает. Отныне выпадающее меню всегда показывает, когда пользователь меняет поисковый запрос, поэтому проблем нет. Когда пользователь перезагружает страницу и быстро вводит новый термин и останавливается, снова выпадающее меню не отображается. Когда после перезагрузки страницы пользователь вводит термин очень медленно, выпадающее меню показывает, а затем снова нет проблем. Как добиться того, чтобы выпадающее меню также отображалось после «первого экземпляра ввода»?

  • В Internet Explorer выпадающее меню никогда не отображается.

вот мой код:

$('#my-search-input').on('keyup', function() { 
      var characterLength = $(this).val().length; 

      if ((characterLength > 2) || (characterLength == 0)) { 
       typewatch(function() { 
        $('#my-search-input').autocomplete({ 
         source: function (request, response) { 
          $.post(Routing.generate('my_path'), { 
           term: request.term 
          }, function (data) { 
           response(data) 
          }, 'json'); 
         }, 
         close: function (event, ui) { 
          loadResults(); 
         } 
        }); 
        loadResults(); 
       }, 500); 
      } 
     }); 

     var typewatch = (function() { 
      var timer = 0; 
      return function (callback, ms) { 
       clearTimeout(timer); 
       timer = setTimeout(callback, ms); 
      }; 
     })(); 

UPDATE: JSFIDDLE

Здесь приходит JS скрипку, который имеет подобный код и содержит проблему: http://jsfiddle.net/cd1kd08s/

Когда ты введите «Албан», чтобы найти «Албанию», раскрывающийся список сразу не отображается. Когда вы продолжаете набирать букву «i» (в результате получается «Albani»), выпадающий список показывает.

ответ

0

Нет необходимости использовать прослушиватели таймера/клавиатуры для этого материала. Я пыталась дозвониться autocomplete функции плагина на загрузке документов и работает хорошо ..

проверка fiddle

Смежные вопросы