Autocomplete на JQuery

По замыслу дизайнера проекта над которым я сейчас работаю на сайте должен присутствовать т.н. «живой поиск» или т.н. suggest. Я же зову его просто — autocomplete. Из известных мне плагинов сразу приглянулся autocomplete из набора jquery user interface. Однако беда! Данное решение не позволяет воспроизводить(доступным образом) своё форматирование в выпадающем списке.

Итак, в вёрстке имеем:
1. Собственно сам input;
2. Клавишу button для отправки строки поиска;
3. Слой div в котором будет выводится всякая найденная и пришедшая фигня с сервера.



Стили такие для элементов:

.div-search{ width:500px }
#search-field{ width:100%; padding:5px; float:left }
.suggest-block{ position:absolute }
.search-button{ margin-left:15px; margin-top:2px; float:left }
.clear{ clear:both }

Далее собственно сама лайба на Javascript. Весь функционал основан на событии KEYUP:

$(function(){
  var act_item = -1;    // счётчик для выделенной строки
  var time_up;    // таймер для задержки отправки на сервер

  $('#search-field').keyup(function(e){
    var val = $(this).val();
    var $item = $('.suggest-item');
    if(e.keycode === 40){    // клавиша вниз

    }else if(e.keyCode === 38){    // клавиша вверх

    }else if(e.keyCode === 27){   // клавиша esc

    }else if(e.keyCode === 13){    // enter

    }else if(val.length > 2){    // введено более двух символов
      clearTimeout(time_up);
      time_up = setTimeout(function(){

        $.getJSON("/search", {term:val}, function (r)  {

          $('.suggest-block').html(content);

        });

        act_item = -1;

      },500);
    }
  });
});

Велик естественно просто показывает как это осуществить, а не даёт вам скопипастить код для вставки в свой проект.

Запись опубликована в рубрике Javascript (Jquery) с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий